集成方式很简单,就不做介绍了,直接参照官网
xxljob官网
https://www.xuxueli.com/xxl-job/
1.spring版本过低,导致集成失败(或spring版本存在依赖冲突)
查看jar包的间接依赖mvn dependency:tree>temp/tree.txt
用include参数过滤mvn dependency:tree -Dincludes=commons-collections
如果想看冲突和重复的具体情况,用verbose参数mvn dependency:tree -Dverbose -Dincludes=commons-collections
2.BindException: Address already in use: bind at sun.nio.ch.Net.bind0(Native Method)
初看的时候还以为是端口占用:Address already in use: bind,在保证端口无占用的情况下,不要被错误提示蒙蔽了,实则是 xxl-job 的执行器注解 @Bean 配置的问题。
在低版本的 xxl-job 中, 初始化 XxlJobSpringExecutor 执行器需要在 @Bean 中加上 initMethod = “start”, destroyMethod = “destroy”
。
但是在高版本的 xxl-job(如 2.2.0)则需要删除 initMethod = “start”, destroyMethod = “destroy”
3.调度中心与客户端版本不一致
可以注册成功,但调用时会500提示xxl-rpc remoting error,需保持前后版本一致
4.版本差异
@XxlJob注解修饰的方法,低版本需指出参入参,以及打印日志的区别,如:
低版本(2.2.0)
@XxlJob("heartJob")
public ReturnT<String> heartJob(String param) throws Exception {
XxlJobLogger.log("----->>HeartJob, param:{}"+param);
return ReturnT.SUCCESS;
}
高版本(2.3.0)
@XxlJob("heartJob")
public void heartJob() throws Exception {
String param = XxlJobHelper.getJobParam(); // 获取参数
XxlJobHelper.log("----->>HeartJob, param:{}"+param);
XxlJobHelper.handleSuccess(); // 设置任务结果
}