xxl-job的使用
xxl-job主要是应用于项目中定时任务的可配置,并可查看执行日志,方便管理。
服务端
https://github.com/xuxueli/xxl-job
有4个主要的文件夹:
xxl-job-admin:任务调度平台
xxl-job-core:核心代码
xxl-job-executor-samples:示例代码
doc:文档
1.配置好xxl-job-admin中application.properties文件,数据库连接地址,用户,密码等;然后执行下doc\db\tables_xxl_job.sql,创建对应的job表;
2.日志配置:xxl-job-admin/src/main/resources/logback.xml
<property name="log.path" value="./applogs/xxl-job/xxl-job-admin.log"/>
3.修改完后启动xxl-job-admin,http://localhost:8080/xxl-job-admin/toLogin,能看到登录页面,输入admin(用户名)、123456(密码),就能够访问任务调度平台了。
4.新建一个springboot项目,添加依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
修改application.properties配置文件,如下:
server.port=8089
# 配置调度中心地址
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
# 执行器和调度中心之间的通信令牌,如果没有配置,表示关闭了通信令牌的校验
# 在xxl-job-admin的配置文件中,有一个一模一样的配置项,两边都配置,就会进行校验
xxl.job.accessToken=default_token
# 配置执行器的名字
xxl.job.executor.appname=xxl-job-demo
# 执行器地址,如果没有配置,就使用 IP:PORT 作为默认值
xxl.job.executor.address=
# 执行器 ip 地址
xxl.job.executor.ip=
# 执行器端口,默认即 9999
xxl.job.executor.port=9999
# 执行器日志文件位置
xxl.job.executor.logpath=./applogs/xxl_job/jobhandler
# 执行器日志保存时间
xxl.job.executor.logretentiondays=30
5.然后写一个XxlJobConfig 配置类
@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;
@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() {
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;
}
}
这个配置类会对应一个任务调度平台的执行器,我们要手动新建它:
最后,编写定时任务的执行代码:
去任务调度中心配置
到此,任务调度服务结束。