[xuxueli/xxl-job]间歇性发生调度器调度完成了,但是执行器一直在执行

2023-12-22 989 views
8

image 如图,同一个任务会有间接性一直在执行中的情况。跑一段时间就会有一些这种一直在执行的任务,如果不手动停止会一直保持这个状态。看了下同一个任务的执行线程ID,都是同一个。我的阻塞策略选的单机串行,按理来说如果这个正在执行的任务没有执行,后续的应该不会在它前面执行的。有没有大佬们清楚这种情况产生的原因的,欢迎讨论。 @xuxueli

回答

4

现在还没有做集群的测试,调度器和执行器都是单机。

3

目前测试的结果是调度了差不多5万次,其中有一百多次任务的状态是进行中,其余全部是成功状态。查询日志发现这一百多次状态为进行中的任务也调度执行完成了,应该只是没有把执行完成的结果回调给调度器。测试的环境是在K8S上,调度器和执行器均为单节点,而且在执行器的point上一直ping调度器的回调地址也是通的。这种情况不知道官方有没有哪些排查的点能给点提示呢,不胜感激! @xuxueli

6

问题已经解决了,这个问题关闭了。

0

可以分享下解决方案吗

7

@Kang-shen 麻烦您分享一下解决方案呢

1

看到有人还在问这个问题。我差不多是两年前出现的问题,具体解决办法已经记不太清楚了,还望见谅。说下目前我们线上使用的情况 ,线上使用这个任务调度系统已经有差不多两年了,调度了差不度7千万次,基本能够满足我们的需求。 线上目前我们采用的策略是:调度中心只部署了一台,执行器部署了三台。路由策略:一致性hash;阻塞处理策略:单机串行。这样做的原因是之前部署3台调度器出现了任务重复执行的情况,因为任务涉及到退款业务等,不允许出现重复操作的情况,而且目前调度中心的压力不大,所以采用一台能规避这个问题。