spring集成xxljob遇到的一些问题

集成方式很简单,就不做介绍了,直接参照官网

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();                 // 设置任务结果
    }
上一篇:调度中心整体方案【基于xxl-job的内部定制改造】


下一篇:项目中整合xxl-job分布式定时任务