错误截图
出错场景与原因分析
出错场景:执行器中注册了三个不同 ip 地址,尝试手动调用定时任务
原因分析:
由于执行器注册节点过多(有三个:同事ip,我的ip,项目内网ip) ,执行定时任务时先调用第一个节点(同事ip),但由于同事的本地项目中没有我的接口,故报错找不到 job handler (job handler [xxx] not found
);
让同事把 job 服务关掉,从执行器注册节点里消失掉后, 再次执行服务出现错误:xxl-job remoting error(connect timed out), for url : xxxxx
,这是因为本机防火墙没关闭,导致的连接超时(ip地址可以找到,但连不上)
使用项目内网ip执行定时任务,可以成功完成。
解决方法
-
在测试 XxlJob 发送定时任务时将本地 job 服务关闭(始终使用内网ip的定时任务接口调用)
-
关闭本机防火墙,使得可以连接到本机ip(保证ip可以ping通)
-
设置路由策略为故障转移(如果第一个ip连接超时或无法找到接口,则继续尝试第二个)(上线不推荐使用)