前言
上一篇文章记录了xxl-job-admin任务调度中心管理后台 的配置以及部署,这篇讲一下如何将现有的springboot工程接入调度中心
一、配置
1.引入xxl-job-core依赖
maven添加如下依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
2.配置文件
在springboot的application.yml加如下配置:
xxl:
job:
accessToken:
admin:
#调度中心部署跟地址:如调度中心集群部署存在多个地址则用逗号分隔。
#执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调"。
#与上一篇文章中的调度中心管理后台的登录地址一致
addresses: http://localhost:9090/job-admin
#分别配置执行器的名称、ip地址、端口号
#注意:如果配置多个执行器时,防止端口冲突
executor:
appname: xxl-job-executor
#这里ip不设置,注册时会自动获取本机ip
# ip: 127.0.0.1
#不设置默认为9999
port: 9999
#执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限
logpath: ./joblogs/jobhandler
#执行器Log文件定期清理功能,指定日志保存天数,日志文件过期自动删除。限制至少保持3天,否则功能不生效;
#-1表示永不删除
logretentiondays: 30
3.注入配置类
@Configuration
@Slf4j
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
// @Value("${xxl.job.executor.ip}")
// private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
//不配置ip,注册时自动获取
// xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
配置到此结束,接下来讲一下项目启动之后管理后台的配置
二、使用步骤
1.新增执行器
在数据库表xxl_job_registry中我们已经可以看到项目已经注册进来了,但是我们需要在后台手动创建xxl-job-executor的执行器,系统会自动将其绑定
1、登录任务调度中心——>执行器管理——>新增
等待一段时间后将能看到执行器已经注册成功
2.开发须知
1、在需要定时运行的方法上加上注解 @XxlJob({jobname}) (方法所在类需要注入spring):
2、通过XxlJobHelper.getJobParam获取参数(多个需要自己分割)
3、使用XxlJobHelper.log()方法输出日志
4、使用XxlJobHelper.handleFail()与使用XxlJobHelper.handleSuccess()方法提前返回成功或者失败(后面需要加上return结束方法)
总结
以上就是xxl-job任务调度中心的接入过程,具体使用可查看官方文档