通过监听Elastic-Job-Lite的zookeeper注册中心的几个关键节点即可完成作业运行状态监控功能。
监听作业服务器存活
监听job_name\instances\job_instance_id节点是否存在。该节点为临时节点,如果作业服务器下线,该节点将删除。
使用Elastic-Job-Lite过程中可能会碰到一些分布式问题,导致作业运行不稳定。
由于无法在生产环境调试,通过dump命令可以把作业内部相关信息dump出来,方便开发者debug分析; 另外为了不泄露隐私,已将相关信息中的ip地址以ip1, ip2…的形式过滤,可以在互联网上公开传输环境信息,便于进一步完善Elastic-Job。
如何使用
配置监听端口
支持两种配置方式
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:reg="http://www.dangdang.com/schema/ddframe/reg"
xmlns:job="http://www.dangdang.com/schema/ddframe/job"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.dangdang.com/schema/ddframe/reg
http://www.dangdang.com/schema/ddframe/reg/reg.xsd
http://www.dangdang.com/schema/ddframe/job
http://www.dangdang.com/schema/ddframe/job/job.xsd
">
<reg:zookeeper id="regCenter" server-lists=" yourhost:2181" namespace="dd-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />
<job:simple id="oneOffElasticJob" monitor-port="9888" class="xxx.MyElasticJob" registry-center-ref="regCenter" cron="0/10 * * * * ?" sharding-total-count="3" sharding-item-parameters="0=A,1=B,2=C" />
</beans>
public class JobMain {
public static void main(final String[] args) {
jobConfig.setMonitorPort(9888);
}
}
启动作业
执行dump命令
dump命令完全参照Zookeeper的四字命令理念
echo "dump" | nc <任意一台作业服务器IP> 9888
导出至文件
echo "dump" | nc <任意一台作业服务器IP> 9888 > job_debug.txt
使用注意事项
务必更新至1.0.3以上版本