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,就会报这个错误
5条答案
按热度按时间chy5wohz1#
还有一个问题是:
spring cloud 在停止服务的时候,如果 xxl-job 还有正在运行的 定时任务,要该如何处理??
bvhaajcl2#
如果我没记错的话2.01是直接杀死正在执行的定时任务,如果想等待执行完毕,需要改下源码
4xrmg8kj3#
直接优雅关闭执行器会自动下线并且等待运行中的任务执行完毕,但是少了callback操作(就是你报错的那个,可以对比下正常任务和这个任务的日志)导致任务记录未能更新,一直显示执行中,等待一段时间后由于判断到执行器不存在(k8s ip变化),会把任务登记为失败
我们的处理方式:自己改xxl-job源码和配置k8s的preStop,实现上线新执行器、下线旧执行器(关闭ExecutorRegistryThread和刷新xxl_job_group),循环等待旧执行器所有任务完成(查xxl_job_log)再优雅关闭
rfbsl7qr4#
@qwn3213 可以请教下是如何更改的
6ie5vjzr5#
我们也遇到了相同的问题,@qwn3213@xuxueli 现在是怎么解决 spring-cloud 的注册中心consul中实例已经注销,但是在xxl-job的执行器还仍然继续执行,会出现报错情况。