问题描述:
项目场景:在新增xxl-job后,执行定时任务,一直提示job handler [loadFlow] not found
原因分析:
这里最常见的原因就是JobHandler写错了或者服务部署失败了,导致xxlJob在执行的时候找不到对应的handler。
在仔仔细细的排查后,排除了以上两种可能。
最后在打开执行器管理的时候发现了问题。
OnLine机器地址居然有两个!
考虑有没有可能是handler服务部署在了7001这台机器上,但是执行定时任务的时候,xxlJob调用的是7002这台机器,显然这种一定会报job handler [xxxx] not found。
经测试,果然,之前的很多测试完成的定时任务也调不通了,基本可以确认是这个问题。
解决方案:
之所以出现这个问题,是因为同一个项目部署在了不同的机器上作为两个不同的产品使用,但是两个服务配置的xxlJob地址是相同的,也就导致两个服务共用其中一台机器上的xxlJob,但是新增的handler只在一台机器上存在
解决方法,将两个服务的xxl-job-admin-address配成各自对应的xxlJob地址,并将执行器的注册方式改成自动