- Hive Exception: Too many counters: 2001 max=2000 的解决方法
houzhizhen
hivehivehadoopbigdata
在hive任务的执行过程中,可能出现Toomanycounters的异常。如果执行引擎时tez,则说明当前作业的counters数量超过tez默认的counters限制。Exception:Toomanycounters:2001max=2000atorg.apache.tez.common.counters.Limits.checkCounters(Limits.java:88)atorg.ap
- Hive 3.1 在 metastore 运行的 remote threads
houzhizhen
hivehivehadoop数据仓库
Remotethreads是仅当Hivemetastore作为单独的服务运行是启动,请求需要开启compactor。有以下几种:1.AcidOpenTxnsCounterService统计当前open的事务数从表TXNS中统计状态为open的事务。此事务数量可以再hivemetrics中。2.AcidHouseKeeperService定期调用txnHandler.performTimeOuts(
- Java RPC(远程过程调用)技术详解
黄尚圈圈
javarpc开发语言
在当今分布式系统盛行的时代,服务间的通信变得至关重要。JavaRPC(RemoteProcedureCall,远程过程调用)作为一种高效、透明的远程通信手段,在微服务架构、分布式计算等领域扮演着重要角色。本文将深入介绍JavaRPC的基本概念、工作原理、实现方式以及实际应用中的注意事项。一、JavaRPC概述RPC允许一个程序直接调用另一个地址空间(通常是另一台机器上的程序)中的过程或函数,就像调
- ReactNative组件详解
Code4Android
编程语言androidiosreact-native
ReactNative学习记录传送门ReactNative核心思想就是组件化,它基于前端框架React,在我们使用其开发Android和iOS的时候,共用一套组件即一套代码,增加了代码复用性。今天的这篇文章不不分析过多的知识点,主要介绍如下内容:如何进行自定义组件如何使用自定义组件组件的生命周期自定义组件ReactNative中我们实现的UI都是有组件组成的,但是有时候为了实现我们想要的效果,并且
- JAVA多线程详解(超详细)
m0_74823434
面试学习路线阿里巴巴资料职业发展javapython开发语言后端
目录一、线程简介1、进程、线程2、并发、并行、串行3、进程的三态二、线程实现1、继承Thread类2、实现Runnable接口3、实现Callable接口(不常用)三、线程常用方法1、线程的状态2、线程常用方法四、多线程1、守护(Deamon)线程2、多线程并发与同步3、死锁4、Lock(锁)5、线程协作6、线程池一、线程简介1、进程、线程程序:开发写的代码称之为程序。程序就是一堆代码,一组数据和
- 使用react-native-vector-icons
孟宪磊mxl
reactnativereact.jsjavascript
ReactNativeVectorIcons是一个在GitHub上非常受欢迎的ReactNative图标库。它提供了许多常见的图标集,如FontAwesome和Ionicons等。使用这个库可以简化在ReactNative项目中使用图标的过程。一、安装npminstallreact-native-vector-icons二、配置环境(android)1.打开android/app/build.gr
- ReactNative fetch源码分析
郝捷Laxus
ReactNative
原生分析的是安卓端核心代码//react-native/vendor/core/wehatwg-fetch.jsself.fetch=function(input,init){returnnewPromise(function(resolve,reject){varrequest=newRequest(input,init);varxhr=newXMLHttpRequest();xhr.onloa
- React Native 新架构,前端开发框架
2401_83974173
2024年程序员学习reactnative架构react.js
JSthread会先对其序列化,形成下面一条消息UIManager.createView([343,“RCTView”,31,{“backgroundColor”:-16181,“width”:200,“height”:200}])通过Bridge发到ShadowThread。ShadowTread接收到这条信息后,先反序列化,形成Shadowtree,然后传给Yoga,形成原生布局信息。接着又通
- mac Homebrew安装、更新失败
csdn_li_1212
macmacos
我这边使用brew安装git-lfs一直报这个错:curl:(35)LibreSSLSSL_connect:SSL_ERROR_SYSCALL更新brewupdate也是报这个错误。最后使用使用大佬提供的脚本进行操作:/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"这个可以解决bre
- jQuery获取并解析API接口Json数据的方法
qhdzj87
前端(JSjQuery等)jqueryjsonjavascript
json是API的常用数据交换格式,在Web开发中,除了后端程序,前端也可以借助JavaScript技术获取并解析API中的json数据,这里介绍一种通过jQuery的$get()函数获取并解析API接口Json数据的方法。其基本语法如下:$get(url,[data],[callback])在$get()函数中,包含了三个参数。其中:url:请求的地址;data:请求数据的列表;callback
- fastadmin 微信小程序退款流程
bilichen006
微信小程序小程序
一、先登录微信商户平台,下载好认证文件cert,把cert里面的key.pem和cert.pem上传到宝塔服务器文件public上新建一个cert里面二、在order.js文件中,修改api函数api:{bindevent:function(){//Form.api.bindevent($("form[role=form]"));Form.api.bindevent($("form[role=fo
- php-tp5-fastadmin开发H5页面,以微信公众号授权,进行JSAPI支付流程
bilichen006
小例子phpfastadmintp5公众号支付JSAPI
技术要点(具体开发代码,在(公正年报H5)中实现1、申请好公众号,获取AppID(公众号ID)AppSecret(公众号密钥)2、申请微信支付账户,获取(商户号)和(密钥)3、在微信支付账户中绑定公众号,然后在公众号中同意授权绑定,使两者产生关联代码实现一、h5页面,调用方法获取codepublicfunctiongetGzhCode(){$appid='xxx';//公众号appid$redir
- Sass 教程
shengyin714959
笔记sass前端css
Sass(英文全称:SyntacticallyAwesomeStylesheets)是一个最初由HamptonCatlin设计并由NatalieWeizenbaum开发的层叠样式表语言。Sass是一个CSS预处理器。Sass是CSS扩展语言,可以帮助我们减少CSS重复的代码,节省开发时间。Sass完全兼容所有版本的CSS。Sass扩展了CSS3,增加了规则、变量、混入、选择器、继承、内置函数等等特
- vector push_back 时间复杂度分析
Bob__yuan
#面试题#C++
《C++程序设计语言》第4部分:标准库,里边写vector,第一句如下:TheSTLvectoristhedefaultcontainer.Useitunlessyouhaveagoodreasonnotto.Ifyoursuggestedalternativeisalistorbuilt-inarray,thinktwice. vector确实是非常常用,比较基础,不想其他花里胡哨的con
- 线程+线程池
gordon~9
javajava线程线程池
线程1、认识线程线程是进程的最基本执行单位。是CPU调度的最小单位。在同一时间需要完成多项任务的时候2、创建线程的三种方式继承Thread类实现Runnable接口实现Callable接口创建方式使用场景Thread单继承Runnable无返回值任务Callable有返回值任务3、run和start方法的区别3、常用的方法方法名称作用currentThreade获取当前线程setName设置线程名
- 【场景实现】React+material-ui+typescript实现H5上传身份证后显示图片 ,FileReader.readAsDataURL()方法读取图像信息
椰卤工程师
超级避坑指难React移动多端typescriptreactjsmaterial-ui
原理readAsDataURL方法用于读取指定的内容File。读取操作完成后,readyState变成DONE,并loadend触发。那时,该result属性包含数据作为数据:URL表示文件数据为base64编码的字符串。举个栗子HTMLJavascriptfunctionpreviewFile(){constpreview=document.querySelector('img');constf
- 一文了解以太坊的MethodID
住在河边的程序猿
区块链教程区块链MethodIDethers以太坊
一、什么是MethodID?以太坊依靠一个唯一标识符(称为MethodID或函数选择器functionselector)来区分智能合约中的不同函数或方法。MethodID是函数签名的Keccak-256哈希的前4个字节(8个字符,包括0x也就是取前10个字符),用于指定要调用哪些函数。函数签名包括函数名称及其参数类型,它们之间用逗号分隔,中间没有空格。接下来以transfer函数为例,进行说明:c
- c++ Lambda 表达式使用笔记
JANGHIGH
C++c++笔记
c++Lambda表达式使用笔记Lambda表达式的基本组成部分1.**捕获列表(CaptureList)**2.**参数列表(Parameters)**3.**返回类型(ReturnType)**4.**函数体(FunctionBody)**5.**说明符(Specifiers)**6.**模板形参(C++20)**Lambda表达式的深入应用1.**即调用函数表达式(IIFE)**2.**捕获
- Vim - 快速插入C语言函数注释模板
sz66cm
vimc语言excel
背景C语言使用vim编写时,需要快速对函数进行说明头插入;代码function!InsertCFunctionHeader()"获取当前行内容letline=getline('.')"匹配C函数定义letmatched=matchlist(line,'^\s*\w\+\+\(\w\+\)(\(.*\))')"如果当前行不是函数定义,退出iflen(matched)==0echo"Notafunct
- NativeScript 8.9.0 发布,跨平台原生应用框架
自不量力的A同学
javascript
NativeScript是一个开源框架,可让开发者使用JavaScript或TypeScript来构建iOS和Android应用5。目前NativeScript最新版本为8.8.04,并未发布8.8.0以上版本,以下是NativeScript8.8.0的相关信息:改进的渲染性能:新的渲染引擎进一步优化了UI的绘制速度,使应用响应更快,能为用户提供更流畅的操作体验,在界面切换、元素显示等方面的表现更
- LangChain数据代理(Agents)与Function Calling解析
一个头发很多的程序员
langchain实战langchainpython人工智能语言模型prompt
数据代理(Agents):赋予模型行动力的FunctionCalling在LangChain的生态中,数据代理(Agents)是一个关键部分,它将语言模型的能力从“回答问题”拓展为“主动行动”,为自动化和复杂任务处理带来了巨大优势。而这一切的核心就在于FunctionCalling——一种让模型具备轻松调用外部函数或工具的神奇技术。本篇文章将以智能助手的构建为例,深入解析数据代理的原理和实践。Fu
- (001)mysql全接触
我思故我在6789
数据库封神之路mysql
1.MySQL如何优化SQL查询语句?正确回答通过率:73.0%[详情]推荐指数:★★★★试题难度:中级建议性操作方案如下:1:避免全表扫描考虑在where和orderby涉及的列上建立索引,in和notin也要慎用,尽量用between取代。2:优化COUNT查询count可以统计列的数量,统计列值时要求列非空;COUNT还可以统计行数,当MySQL确定括号内的表达式不可能为NULL时,实际上就
- 蓝桥杯单片机第十二届省赛(比较简洁版)
aaq内
单片机蓝桥杯c++
思路:本次赛题比较简单,将界面与数据分开处理,这样代码会比较明了两个底层就不细说了#include#include#include#definePx(adr,dat){P2=(P2&0x1f)|(adr=750)//温度读取750ms读取一次{Tcount=0;tempreature=TP_RD();}if(Dcount>=200)//DAC输出200ms输出一次{Dcount=0;DAC_OUT
- php mongodb oid,use MongoDB::OID;
彤垚
phpmongodboid
#!/usr/bin/perlusewarnings;usestrict;useData::Dumper;useMongoDB;useMongoDB::OID;my$con=MongoDB::Connection->new;my$db=$con->syncrobid;my$account_col=$db->account;$account_col->remove;my$account_data={
- 深入理解 Promise:使用指南与手动实现
vvilkim
JavaScriptjavascriptajax开发语言
Promise是JavaScript中处理异步操作的核心工具之一。它提供了一种更优雅的方式来管理异步代码,避免了回调地狱(CallbackHell)。本文将分为两部分:第一部分介绍Promise的使用与创建指南,第二部分手动实现一个简化版的Promise,帮助你深入理解其工作原理。第一部分:Promise的使用与创建指南1.什么是Promise?Promise是一个表示异步操作最终完成(或失败)及
- 图像识别技术与应用课后总结(12)
一元钱面包
人工智能
全局平均池化(GlobalAveragePooling)1.导入库和设备配置importtorch.nnasnnimporttorch.nn.functionalasFdevice=torch.device("cuda:0"iftorch.cuda.is_available()else"cpu")-importtorch.nnasnn:导入PyTorch的神经网络模块,用于构建神经网络层。-imp
- < HarmonyOS TechTalk 37 > HarmonyOS应用图形绘制能力及解决方案介绍
harmonyos
课程简介本课程是【HarmonyOSTechTalk】的第37课。课程主要介绍HarmonyOS应用图形绘制相关能力和解决方案,包括Canvas组件绘制、自定义绘制、绘制帧率调整以及绘制效果设置等,帮助开发者实现应用中图形绘制的场景和解决相关问题。标签高级课程HarmonyOS图形绘制能力自定义绘制绘制帧率调整2D图形绘制框架介绍ArkUI绘制组件可变帧率控制Native观看课程点击链接,立马观看
- url转base64(富文本编辑器)
werch
前端javascript开发语言
window.URL=window.URL||window.webkitURL;varxhr=newXMLHttpRequest();xhr.open("get",src,true);//至关重要xhr.responseType="blob";xhr.onload=function(){if(this.status==200){//得到一个blob对象varblob=this.response;c
- 事件监听
werch
js
1.事件监听可以向一个元素添加多次点击事件,后一个点击事件不会覆盖前一个点击事件obj.addEventListener(‘click’,function(){},false)参数1:事件名参数2:事件的执行函数参数3:boolean值,默认是false,明确了该事件是在捕获阶段执行还是在冒泡阶段执行,false代表在冒泡阶段执行,true代表在捕获阶段执行(可不写)特性:1.可以对该元素的此事件
- 《C++ Primer Plus》学习笔记 2.1.3 C++预处理器和iostream文件
weixin_33859844
c/c++
程序清单2-1myfirst.cpp//myfirst.cpp--displaysamessage#include//aPREPROCESSORdirectiveintmain()//functionheader{//startoffunctionbodyusingnamespacestd;//makedefinitionsvisiblecoutusingnamespacestd;可使用其他代码替
- 多线程编程之理财
周凡杨
java多线程生产者消费者理财
现实生活中,我们一边工作,一边消费,正常情况下会把多余的钱存起来,比如存到余额宝,还可以多挣点钱,现在就有这个情况:我每月可以发工资20000万元 (暂定每月的1号),每月消费5000(租房+生活费)元(暂定每月的1号),其中租金是大头占90%,交房租的方式可以选择(一月一交,两月一交、三月一交),理财:1万元存余额宝一天可以赚1元钱,
- [Zookeeper学习笔记之三]Zookeeper会话超时机制
bit1129
zookeeper
首先,会话超时是由Zookeeper服务端通知客户端会话已经超时,客户端不能自行决定会话已经超时,不过客户端可以通过调用Zookeeper.close()主动的发起会话结束请求,如下的代码输出内容
Created /zoo-739160015
CONNECTEDCONNECTED
.............CONNECTEDCONNECTED
CONNECTEDCLOSEDCLOSED
- SecureCRT快捷键
daizj
secureCRT快捷键
ctrl + a : 移动光标到行首ctrl + e :移动光标到行尾crtl + b: 光标前移1个字符crtl + f: 光标后移1个字符crtl + h : 删除光标之前的一个字符ctrl + d :删除光标之后的一个字符crtl + k :删除光标到行尾所有字符crtl + u : 删除光标至行首所有字符crtl + w: 删除光标至行首
- Java 子类与父类这间的转换
周凡杨
java 父类与子类的转换
最近同事调的一个服务报错,查看后是日期之间转换出的问题。代码里是把 java.sql.Date 类型的对象 强制转换为 java.sql.Timestamp 类型的对象。报java.lang.ClassCastException。
代码:
- 可视化swing界面编辑
朱辉辉33
eclipseswing
今天发现了一个WindowBuilder插件,功能好强大,啊哈哈,从此告别手动编辑swing界面代码,直接像VB那样编辑界面,代码会自动生成。
首先在Eclipse中点击help,选择Install New Software,然后在Work with中输入WindowBui
- web报表工具FineReport常用函数的用法总结(文本函数)
老A不折腾
finereportweb报表工具报表软件java报表
文本函数
CHAR
CHAR(number):根据指定数字返回对应的字符。CHAR函数可将计算机其他类型的数字代码转换为字符。
Number:用于指定字符的数字,介于1Number:用于指定字符的数字,介于165535之间(包括1和65535)。
示例:
CHAR(88)等于“X”。
CHAR(45)等于“-”。
CODE
CODE(text):计算文本串中第一个字
- mysql安装出错
林鹤霄
mysql安装
[root@localhost ~]# rpm -ivh MySQL-server-5.5.24-1.linux2.6.x86_64.rpm Preparing... #####################
- linux下编译libuv
aigo
libuv
下载最新版本的libuv源码,解压后执行:
./autogen.sh
这时会提醒找不到automake命令,通过一下命令执行安装(redhat系用yum,Debian系用apt-get):
# yum -y install automake
# yum -y install libtool
如果提示错误:make: *** No targe
- 中国行政区数据及三级联动菜单
alxw4616
近期做项目需要三级联动菜单,上网查了半天竟然没有发现一个能直接用的!
呵呵,都要自己填数据....我了个去这东西麻烦就麻烦的数据上.
哎,自己没办法动手写吧.
现将这些数据共享出了,以方便大家.嗯,代码也可以直接使用
文件说明
lib\area.sql -- 县及县以上行政区划分代码(截止2013年8月31日)来源:国家统计局 发布时间:2014-01-17 15:0
- 哈夫曼加密文件
百合不是茶
哈夫曼压缩哈夫曼加密二叉树
在上一篇介绍过哈夫曼编码的基础知识,下面就直接介绍使用哈夫曼编码怎么来做文件加密或者压缩与解压的软件,对于新手来是有点难度的,主要还是要理清楚步骤;
加密步骤:
1,统计文件中字节出现的次数,作为权值
2,创建节点和哈夫曼树
3,得到每个子节点01串
4,使用哈夫曼编码表示每个字节
- JDK1.5 Cyclicbarrier实例
bijian1013
javathreadjava多线程Cyclicbarrier
CyclicBarrier类
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的 barrier。
CyclicBarrier支持一个可选的 Runnable 命令,
- 九项重要的职业规划
bijian1013
工作学习
一. 学习的步伐不停止 古人说,活到老,学到老。终身学习应该是您的座右铭。 世界在不断变化,每个人都在寻找各自的事业途径。 您只有保证了足够的技能储
- 【Java范型四】范型方法
bit1129
java
范型参数不仅仅可以用于类型的声明上,例如
package com.tom.lang.generics;
import java.util.List;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value =
- 【Hadoop十三】HDFS Java API基本操作
bit1129
hadoop
package com.examples.hadoop;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoo
- ua实现split字符串分隔
ronin47
lua split
LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或 C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。LUA只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从 而适合嵌入在别的程序里。因此在lua中并没有其他语言那样多的系统函数。习惯了其他语言的字符串分割函
- java-从先序遍历和中序遍历重建二叉树
bylijinnan
java
public class BuildTreePreOrderInOrder {
/**
* Build Binary Tree from PreOrder and InOrder
* _______7______
/ \
__10__ ___2
/ \ /
4
- openfire开发指南《连接和登陆》
开窍的石头
openfire开发指南smack
第一步
官网下载smack.jar包
下载地址:http://www.igniterealtime.org/downloads/index.jsp#smack
第二步
把smack里边的jar导入你新建的java项目中
开始编写smack连接openfire代码
p
- [移动通讯]手机后盖应该按需要能够随时开启
comsci
移动
看到新的手机,很多由金属材质做的外壳,内存和闪存容量越来越大,CPU速度越来越快,对于这些改进,我们非常高兴,也非常欢迎
但是,对于手机的新设计,有几点我们也要注意
第一:手机的后盖应该能够被用户自行取下来,手机的电池的可更换性应该是必须保留的设计,
- 20款国外知名的php开源cms系统
cuiyadll
cms
内容管理系统,简称CMS,是一种简易的发布和管理新闻的程序。用户可以在后端管理系统中发布,编辑和删除文章,即使您不需要懂得HTML和其他脚本语言,这就是CMS的优点。
在这里我决定介绍20款目前国外市面上最流行的开源的PHP内容管理系统,以便没有PHP知识的读者也可以通过国外内容管理系统建立自己的网站。
1. Wordpress
WordPress的是一个功能强大且易于使用的内容管
- Java生成全局唯一标识符
darrenzhu
javauuiduniqueidentifierid
How to generate a globally unique identifier in Java
http://stackoverflow.com/questions/21536572/generate-unique-id-in-java-to-label-groups-of-related-entries-in-a-log
http://stackoverflow
- php安装模块检测是否已安装过, 使用的SQL语句
dcj3sjt126com
sql
SHOW [FULL] TABLES [FROM db_name] [LIKE 'pattern']
SHOW TABLES列举了给定数据库中的非TEMPORARY表。您也可以使用mysqlshow db_name命令得到此清单。
本命令也列举数据库中的其它视图。支持FULL修改符,这样SHOW FULL TABLES就可以显示第二个输出列。对于一个表,第二列的值为BASE T
- 5天学会一种 web 开发框架
dcj3sjt126com
Web框架framework
web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的经验写了一个to do list,按照这个清单,一条一条的学习,事半功倍,很快就能掌握 一共25条,即便很磨蹭,2小时也能搞定一条,25*2=50。只需要50小时就能掌握任意一种web框架
各类web框架大同小异:现代web开发框架的6大元素,把握主线,就不会迷路
建议把本文
- Gson使用三(Map集合的处理,一对多处理)
eksliang
jsongsonGson mapGson 集合处理
转载请出自出处:http://eksliang.iteye.com/blog/2175532 一、概述
Map保存的是键值对的形式,Json的格式也是键值对的,所以正常情况下,map跟json之间的转换应当是理所当然的事情。 二、Map参考实例
package com.ickes.json;
import java.lang.refl
- cordova实现“再点击一次退出”效果
gundumw100
android
基本的写法如下:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
//navigator.splashscreen.hide();
document.addEventListener("b
- openldap configuration leaning note
iwindyforest
configuration
hostname // to display the computer name
hostname <changed name> // to change
go to: /etc/sysconfig/network, add/modify HOSTNAME=NEWNAME to change permenately
dont forget to change /etc/hosts
- Nullability and Objective-C
啸笑天
Objective-C
https://developer.apple.com/swift/blog/?id=25
http://www.cocoachina.com/ios/20150601/11989.html
http://blog.csdn.net/zhangao0086/article/details/44409913
http://blog.sunnyxx
- jsp中实现参数隐藏的两种方法
macroli
JavaScriptjsp
在一个JSP页面有一个链接,//确定是一个链接?点击弹出一个页面,需要传给这个页面一些参数。//正常的方法是设置弹出页面的src="***.do?p1=aaa&p2=bbb&p3=ccc"//确定目标URL是Action来处理?但是这样会在页面上看到传过来的参数,可能会不安全。要求实现src="***.do",参数通过其他方法传!//////
- Bootstrap A标签关闭modal并打开新的链接解决方案
qiaolevip
每天进步一点点学习永无止境bootstrap纵观千象
Bootstrap里面的js modal控件使用起来很方便,关闭也很简单。只需添加标签 data-dismiss="modal" 即可。
可是偏偏有时候需要a标签既要关闭modal,有要打开新的链接,尝试多种方法未果。只好使用原始js来控制。
<a href="#/group-buy" class="btn bt
- 二维数组在Java和C中的区别
流淚的芥末
javac二维数组数组
Java代码:
public class test03 {
public static void main(String[] args) {
int[][] a = {{1},{2,3},{4,5,6}};
System.out.println(a[0][1]);
}
}
运行结果:
Exception in thread "mai
- systemctl命令用法
wmlJava
linuxsystemctl
对比表,以 apache / httpd 为例 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service 检查服务状态 service h