一、下载xxl-job项目
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
从GitHub上面将项目clone下来,如果网络问题导致速度慢也可以从Gitee上面拉取:
- GitHub地址:https://github.com/xuxueli/xxl-job
- Gitee地址:https://gitee.com/xuxueli0323/xxl-job
运行项目下doc/db/tables_xxl_job.sql文件,创建需要的表。
打开xxl-job-admin模块,在application.properties中进行后台的配置
修改配置后启动XxlJobAdminApplication类,访问http://localhost:8080/xxl-job-admin 默认账户admn,密码123456。
进来就可以看到主界面了
运行项目中自带的定时任务案例。
在任务管理中查看到对应的任务信息。
设置定时任务执行规则,这里设置每10秒运行一次。
启动任务运行一段时间后停止。
查看调度日志,可以看到每10秒执行一次。
二、在自己的项目中添加xxl-job
添加依赖
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.4.1</version></dependency>
将xxl-job案例中配置复制当自己项目中。
logging:level:org:flowable: debugconfig: classpath:logback.xml### xxl-job相关配置
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl:job:admin:addresses: http://127.0.0.1:8080/xxl-job-adminaccessToken: default_tokenexecutor:appname: xxl-job-executor-ywz
### ip:
### address:port: 9999logpath: /data/applogs/xxl-job/jobhandlerlogretentiondays: 30
package org.example.flowabledemo2.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;/*** xxl-job config** @author xuxueli 2017-04-28*/
@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;@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);// xxlJobSpringExecutor.setAddress(address);// xxlJobSpringExecutor.setIp();xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}}
编写一个定时任务。
@Component
public class MySchedule {@XxlJob("test")public void test() {System.out.println("执行任务:" + LocalDateTime.now());}
}
在任务调度中心新增执行器
在任务管理中新增任务
启动任务进行测试,可以看到任务每10秒执行一次。