xxl-job踩坑记录——执行器,执行10分钟自动失败
问题描述
上一篇Docker 部署xxl-job 报错:xxl-rpc remoting error(connect timed out), for url : xxxxxx - 这行代码没Bug - 博客园 (cnblogs.com),解决了方式是把执行器自动注册改为手动录入,后面跑任务的时候发现超过十分钟的任务会自动失败,但是任务还在跑,只是调度中心这边日志已经是调度失败了,查看失败日志为:“任务结果丢失,标记失败”。如下图
解决思路
仔细看了一下任务执行及日志回调的源码,也打了日志,发现并没有问题,当任务跑了十分钟后,执行器的线程没有停止还在继续跑着,但是调度中心的日志已经是失败了。
后面想起来在调度中心启动的时候,创建一个线程来处理任务结果丢失。
JobCompleteHelper.getInstance().start();
进入start()
方法,里面创建了两个线程,查看monitorThread
线程的run
方法,
最终解决
把执行器手动录入改为自动注册,然后在执行器的配置文件里把地址加上,就解决了问题。
xxl:
job:
executor:
address: http://172.17.0.1:${server.port}/
我是阿廷,一个相信努力可以改变人生的人,我相信一切的上进行为都是值得的,至少可以让我看见更大的世界。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步