Elastic-Job作业执行流程-20160105
2016-01-05 22:48:24 13 举报
elastic-job作业执行流程
作者其他创作
大纲/内容
是
等待分片结束
已开启misfire且存在misfire的分片且未stoped且不需重分片?
否
是否监控作业执行时状态?
remove或产生多的execution/item;remove leader/execution/necessary
分片项set为本job server失效转移的分片序列集合
分片项为空?
remove leader/execution/cleaning
启用监控且存在execution/item/running?
remove leader/failover/items/item
分片置execution/item/misfire
executeJob
是否leader?
开始获取当前Job服务器运行时分片上下文
获取到本job server的失效转移序列号execution/item/failover且ip同节点值?
开始清理作业上次运行时信息
写servers/ip/status为RUNNING
是leader节点?
开始executeJobInternal
replace servers/ip/sharding;remove leader/sharding/necessary;remove leader/sharding/processing
是否检查时间误差?
结束
立即启动作业
注册job启动信息
remove execution/item/failover
写临时节点leader/sharding/processing
在主节点执行判断,取到leader/failover/items get(0)
获取当前Job服务器运行时分片上下文结束
executeJobInternal
结束executeJobInternal
写execution/item/completed;remove execution/item/running;写execution/item/lastCompleteTime
是否需要重分片?
分片列表为空?
取分片策略,产生分片策略选项,分片
写servers/ip/status为READY
分片结束
清除所有Job服务器上的分片列表servers/ip/sharding
开始
存在leader/failover/items且子节点不为空且server状态为READY(不是stop也不是disable)?
写临时节点execution/item/running;写execution/item/lastBeginTime和nextFireTime
本机与注册中心时间误差是否在允许范围?
是否开启job监控?
等待正在执行的Job结束
开始分片
remove execution/item/misfire
排除正在执行的分片execution/item/running
等待leader/execution/cleaning被remove
写临时节点leader/execution/cleaning;remove execution/item/completed
抛异常
写临时节点execution/item/failover为本机IP
存在execution节点?
开启failover且未stoped?
清理作业上次运行时信息结束
是否开启失效转移?
remove all 本机上被失效转移序列号
设置分片选项和offset/item
存在leader/execution/necessary?
0 条评论
回复 删除
下一页