SpringBoot3.xx集成XXL-JOB(xxl-job-admin-extend版本)
一、资源获取与初始化
1、获取xxl-job源码
由于原生的xxl-job调度中心(xxl-job-admin)仅支持mysql,所以这里不使用原生的,改用拓展调度中心(xxl-job-admin-extend)
①地址1(xxl-job-admin):https://gitee.com/xuxueli0323/xxl-job
下载下来后里面有三个核心文件夹:
②地址1(xxl-job-admin-extend):https://github.com/dwhgygzt/xxl-job-admin-extend
结构:
2、建表
根据自己使用数据库的需求,打开db文件夹建表:
二、开始使用
1、修改xxljob
①修改文件:xxl-job-admin-extend\src\main\resources\application.yml
找到数据库类型并修改为xxl-job-admin-extend支持的数据库:
②修改数据库地址配置xxl-job-admin-extend\src\main\resources\application-sqlserver.yml
注意:使用sqlserver时,可能会有一个关于sqlserver游标的报错,关键字就是图中绿色框中的SelectMethod=cursor,在地址中加上即可
③启动调度中心xxl-job-admin-extend\src\main\java\com\xxl\job\admin\XxlJobAdminApplication.java
④访问调度中心
看自己的xxl-job\xxl-job-admin-extend\src\main\resources\application.yml中配置的端口和根路径,浏览器访问即可
调度中心初始账号:admin,密码:123456
样式:
到此,xxl-job已部署完成,开始第二步,引入xxl-job
2、自己的工程引入xxljob
①引入依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.2-SNAPSHOT</version>
</dependency>
注意:此处的版本建议使用自己拉下来的core的版本:
引入依赖的位置:
②配置xxljob地址
xxl:
job:
admin:
address: http://127.0.0.1:9969/xxl-job-admin # 调度中心地址
executor:
address: 127.0.0.1:9999 # 执行器注册地址
logpath: ./logs # 执行器日志路径
logretentiondays: 30 # 日志保留天数
注意:
1、调度中心地址需要和刚才浏览器访问的地址保持一致
2、执行器注册地址建议使用:127.0.0.1:9999,等会需要使用这个地址
③配置读取并使用
新建类:XxlJobConfig.java
package com.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.address}")
private String adminAddresses;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
④让定时任务执行自己的逻辑
在自己的方法上加上注解:@XxlJob(“xxx”),值为自定义的,待会需要使用到
⑤执行启动
打开调度中心→执行器管理→新增:
记得地址要加http://
打开任务管理器→新增:
填写完必填项,保存,点击启动即可开始测试