分布式调度系统(4)——故障转移
2019-05-06 本文已影响0人
liuhailong
一、问题定义
当任务执行超时的时候,认为任务执行失败,触发故障转移。
区别于任务重新分配,故障转移是临时性的。
节点下线的情况,触发任务重新分配,不是“故障转移”的场景。
二、实现
在availableNodes里选择实时负载最低的一个节点(读取/runtime/node/{nodeName}
节点数据,如果是当前节点,选择负载第二低的),兜底:当前节点重试。
在选中节点触发新的执行。
注意: 有子任务的主任务,不适用于超时的情况。
如设置超时强杀,则强杀原执行。
修改{jobInstanceId}
或{childJobInstanceId}
下 node
节点数据。 retryCount + 1
。
到达重试次数限制,则记录失败,认为任务执行完成。