版本说明:
Springboot版本:2.6.4
xxl-job:版本:2.2.0(最新请移步文末链接)
xxl-job-core依赖引入:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${xxl-job-core.version}</version>
</dependency>
application.yml配置:
xxl:
job:
admin:
addresses: http://test0-xxl-job.xxx.com //xxl-job私服地址
accessToken: ${accessToken} //构造XxlJobExecutor时需要,由xxl-job服务端提供
executor:
appName: ${sping.application.name}
主要代码说明:
XxlJobConfig(XxlJobSpringExecutor配置)
@Slf4j
@Configuration
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appName}")
private String appName;
@Bean(initMethod = "start", destroyMethod = "destroy")
public XxlJobSpringExecutor xxlJobExecutor() throws Exception {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setAccessToken(accessToken);
return xxlJobSpringExecutor;
}
}
Job代码:
@Slf4j
@Component
public class StatisticsDataJob {
@Autowired
private StatisticsService statisticsService;
/**
* 每日统计任务
* @param str 方法参数不可省
* @return
*/
@XxlJob(value = "statisticDailyJob")
public ReturnT<String> statisticDailyJob(String str) {
try {
log.info("topic doc stat job executing...");
//do some statistics job
statisticsService.dailyStat();
} catch (Exception ex) {
log.error(" handler exception:{}", ex.getMessage(), ex);
return ReturnT.FAIL;
}
return ReturnT.SUCCESS;
}
}
其中:注解@xxlJob的方法返回值及参数固定,注解中value将在后台配置时使用,如下:
xxl-job后台配置:
新增执行器:
任务管理:
- 选择执行器:
- 任务配置:
如图中,除了JobHandler需要注意下之外,其他参数比较好理解,不需要一一说明
- 执行日志查看:
可通过操作控制任何的启动状态、查看日志,以及仅执行一次的处理等。
xxl-job说明及环境搭建见:
官方文档:分布式任务调度平台XXL-JOB