xxl-job icon indicating copy to clipboard operation
xxl-job copied to clipboard

xxl-job在spring boot 服务停止做优雅停服的时候,会报下面这个错误,该如何处理

Open sg6303 opened this issue 1 year ago • 5 comments

Please answer some questions before submitting your issue. Thanks!

Which version of XXL-JOB do you using?

2.0.1

Expected behavior

xxl-job应该能正常停止调度,而且该即将要下线的pod内的服务xxl-job不应该报错

Actual behavior

停止的时候,会报错

Steps to reproduce the behavior

直接在k8s进行服务pod停止或重启动作的时候,要下线的pod,就会报这个错误

Other information

image

sg6303 avatar Aug 24 '23 07:08 sg6303

还有一个问题是: spring cloud 在停止服务的时候,如果 xxl-job 还有正在运行的 定时任务,要该如何处理??

sg6303 avatar Aug 29 '23 08:08 sg6303

如果我没记错的话2.01是直接杀死正在执行的定时任务,如果想等待执行完毕,需要改下源码

cryboy007 avatar Sep 11 '23 00:09 cryboy007

直接优雅关闭执行器会自动下线并且等待运行中的任务执行完毕,但是少了callback操作(就是你报错的那个,可以对比下正常任务和这个任务的日志)导致任务记录未能更新,一直显示执行中,等待一段时间后由于判断到执行器不存在(k8s ip变化),会把任务登记为失败

我们的处理方式:自己改xxl-job源码和配置k8s的preStop,实现上线新执行器、下线旧执行器(关闭ExecutorRegistryThread和刷新xxl_job_group),循环等待旧执行器所有任务完成(查xxl_job_log)再优雅关闭

qwn3213 avatar Dec 19 '23 08:12 qwn3213

@qwn3213 可以请教下是如何更改的

LiJun990105 avatar Apr 30 '24 04:04 LiJun990105

我们也遇到了相同的问题,@qwn3213 @xuxueli 现在是怎么解决 spring-cloud 的注册中心consul中实例已经注销,但是在xxl-job的执行器还仍然继续执行,会出现报错情况。

zhanghanwei2008 avatar Jun 18 '24 02:06 zhanghanwei2008