[xuxueli/xxl-job]执行器集群,其中一个节点在运行中挂了,没有去检测其他的节点

2024-05-15 880 views
0

执行器集群,其中一个节点在运行中挂了,没有去检测其他的节点,是这样的吗,还是我配置的方式不对

回答

1

执行器的状态维护是靠心跳在做的吧,多个执行器之间并不知道彼此的存在,只有调度器知道

2

我的意思就是,其中一个执行器节点挂了,调度器没有去启动其他的执行器节点去执行任务

1

手动注册的吗?看看是不是路由策略的问题。自动注册的机器下线被检测到最长需要一个心跳的时间的。

6

自动注册的,路由策略选的是故障转移,我看后台一直在打印 image,貌似是这个job还在队列里面

2

https://github.com/xuxueli/xxl-job/issues/430

431

和这个问题类似。 这个日志其实是jobFailMonitonThread打印的,这个线程做的事情就是监控任务状态。 猜测你这种情况应该是调度被回调之前执行器挂掉,那么这次调度对于调度器来说就会一直处于执行中了,一直被监控,就算执行器重启也无法恢复了,这次调度只能手工终止。这个问题应该是需要作者优化一下的。

0

额,你说的“调度被回调之前执行器挂掉”,是个啥意思。。。

2

可以看下项目的整体架构。 基本上都是用的queue+callback做的异步化,那么这样必然存在队列任务丢失的情况发生。

3

ok,我来看看,3q

9

@Dorae132 @linin29 你好,执行器宕机导致任务结果丢失的问题,在版本 v1.9.2(迭代中)已经做了优化,将会主动对任务结果落盘,待执行器重启后重试回调,避免任务结果丢失。