什么是xxl-job
xxl-job介绍
https://www.xuxueli.com/xxl-job/
xxl-job项目部署
-
git clone https://gitee.com/xuxueli0323/xxl-job.git
-
打开xxl-job项目代码,执行sql脚本
-
根据需求修改端口号、数据库连接和日志文件配置
-
打包项目,找到xxl-job-admin-2.3.0.jar并启动
-
访问ip:port/xxl-job-admin,默认用户为:admin 密码:123456
-
登录系统后请及时修改账号密码
项目中使用xxl-job
- 添加pom依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
- 增加配置文件
xxl:
job:
admin:
addresses: http://ip:port/xxl-job-admin
accessToken: xxxxxxxx对应xxl-job的accessToken
executor:
appname: tongling
address:
ip:
port: 9999
logpath: /home/jar/xxl-job/jobhandler
logretentiondays: 30
appname为执行器名称,根据需要点击按钮新增
3.增加注册配置XxlJobConfig
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@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.setAppname(appname);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
- 编写定时任务
public class JobTest {
@XxlJob("jobTest")
public void test(){
//获取参数
XxlJobHelper.getJobParam();
XxlJobHelper.log("打印日志");
// TODO: 2021/4/20 业务代码
XxlJobHelper.handleSuccess("返回成功日志");
}
}
- 在调度中心找到对应的appname,添加定时任务
JobHandler为上面定时任务的名称,本例为:jobTest
- 启动定时任务,查看日志