缘由
入门学习和本地部署Xxljob过程中,发现Xxljob任务一半调度成功,一半调度失败,给我邮箱发爆了,为啥呢?查了半天资料都没解决
成功比例图:
实际操作时,发现单次手动执行一定成功,但是cron表达式定时调度就失败了,看了很多博文下面的评论都是这样的,但是没发现很好的解决方法
分析
看调度日志
cron调度成功图:
cron调度失败图:
看红框标出来的,什么!?调度机器居然是其他服务器
回想起:一开始部署xxljob-admin
管理界面的时候,是在云服务器上部署的,然后由于云服务和本地网络不通,懒的去配置防火墙,于是放到本地了;
然后去:看了一下云服务器上的xxljob-admin
,什么!?居然有调度日志
但是handler执行器所在服务上指定的admin地址只配置了本地的地址:
xxl.job.admin.addresses=http://192.168.0.102:9955/xxl-job-admin
最终,猜测:配置好了本地handler应用与云服务管理中心后,没有清理maven缓存,导致重新配置本地后,原本配置未失效,因此handler的请求被负载均衡到了一个本地xxljob-admin,一个云端xxljob-admin
然后:云端是ping不通的,请求发不到,也就出现了调度一半成功一半失败的现象
解决方案
- 云服务器停止xxljob-admin,kill进程
- 本地项目停止,maven clean,重启
重新运行后,再启动执行器任务,全部成功,
成功图:
另附失败成功1:1图:
写在结尾
记录自己遇到的坑点,如果有帮助,可以的话顺手帮忙点个赞就更好啦~