xxl-job任务执行参数null问题
问题描述
- xxl-job
服务升级到2.3.0+
之后,之前的任务调度无法获取到任务的param参数
。
异常代码
@XxlJob("syncScopeMeetingVipJob")
public ReturnT < String > syncScopeMeetingVips(String param) {
long startTime = System.currentTimeMillis();
log.info(">>> [syncScopeMeetingVipJob] start, param:[{}] <<<", param);
JobDateVo jobParam = DateUtils.getJobParam(param);
vipService.syncScopeMeetingVips(jobParam.getStartDate(), jobParam.getEndDate());
log.info(">>> [syncScopeMeetingVipJob] end, process time/seconds:{} <<<", (System.currentTimeMillis() - startTime) / 1000);
return ReturnT.SUCCESS;
}
执行任务调度结果打印参数为
null
。
探究原因
第一种方式,
xxl-job
版本为2.3.0
之前,通过继承IJobHandler
方式获取方法的param
参数。第二种方式,
xxl-job
版本为2.3.0
,通过XxlJobHelper.getJobParam()
方式获取参数,版本差异原因导致。
另一个问题,任务调度无限callback重试
2.3.0版本开始,调度、返回方式调整。
解决方法
@XxlJob("syncScopeMeetingVipJob")
public ReturnT < String > syncScopeMeetingVips() {
String param = XxlJobHelper.getJobParam();
long startTime = System.currentTimeMillis();
log.info(">>> [syncScopeMeetingVipJob] start, param:[{}] <<<", param);
JobDateVo jobParam = DateUtils.getJobParam(param);
vipService.syncScopeMeetingVips(jobParam.getStartDate(), jobParam.getEndDate());
log.info(">>> [syncScopeMeetingVipJob] end, process time/seconds:{} <<<", (System.currentTimeMillis() - startTime) / 1000);
return ReturnT.SUCCESS;
}
通过
XxlJobHelper.getJobParam()
方式获取任务调度参数
本文链接:
/archives/1718764115162
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
胡桃の智能体!
喜欢就支持一下吧