elastic-job失效转移异常
3 月,跳不动了?>>> 背景 公司选用elasticjob作为分布式任务调度工具,版本2.1.5,其中有一个任务对应机器两台,A和B,任务总分片数是4,A对应分片0、1,B对应分片2、3。任务每晚23:30:00执行,T日计算数据记录日期T+1,供T+1日使用。 突然有一天,A机器在22:24运行执行起分片2任务,执行完分片2之后又执行了分片3, 注意分片2、3本该是机器B所用的分片 ,这两点就很奇怪了,异常的时间执行了不属于自己的分片,而且是一个一个执行。下方是日志中记录的task id // 异常的task id,很清楚的看到分片是@2@,机器A在执行 "taskId":"jobname@-@2@-@READY@-@A机器ip@-@4927" // 正常的task id,分片号@2,3@,ip对应的是机器B "taskId":"jobname@-@2,3@-@READY@-@B机器ip@-@12384" 经过分析,基本断定是进任务失效转移逻辑了。但是,为什么任务失效转移呢?任务不在执行的时间点,而且也没有执行中,不可能出现这个情况。 经过回忆,22:23的时候,开发对机器B做了一次内存dump,与A机器启动相差一分钟,可能问题出在这里了。难道对B机器做dump操作导致B短暂与ZK注册中心断开了吗,导致误以为服务器宕机?带着问题,我们又对B做了一次dump,很快