xxl-job入门
- 中文文档:http://www.xuxueli.com/xxl-job/
- 源码:https://github.com/xuxueli/xxl-job
依赖及配置
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.adminAddresses=http://127.0.0.1:8080/xxl-job-admin
### xxl-job, access token
xxl.job.accessToken=Cko1lYx*L
### xxl-job executor appname
xxl.job.appname=simulator
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.address=
### xxl-job executor server-info
xxl.job.ip=
xxl.job.port=9999
### xxl-job executor log-path /data/applogs/xxl-job/jobhandler
xxl.job.logpath=e:/jobhandler
### xxl-job executor log-retention-days
xxl.job.logretentiondays=3
@Bean
@ConfigurationProperties(prefix = "xxl.job")
public XxlJobSpringExecutor xxlJobExecutor() {
return new XxlJobSpringExecutor();
}
创建执行器
创建定时任务
package com.xxl.job.service.handler;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.IJobHandler;
import org.starry.simulator.service.impl.ScheduledSimulatorTrainOnceSvc;
import org.springframework.beans.factory.annotation.Autowired;
public class ScheduledSimulatorTrainOnceHandle extends IJobHandler {
@Autowired
private ScheduledSimulatorTrainOnceSvc scheduled;
@Override
public void execute() throws Exception {
scheduled.scheduledReportSimulatoTrainOnceLog();
}
}
// 执行器代码
@XxlJob("demoJobHandler")
public void demoJobHandler() throws Exception {
XxlJobHelper.log("XXL-JOB, Hello World.");
for (int i = 0; i < 5; i++) {
XxlJobHelper.log("beat at:" + i);
TimeUnit.SECONDS.sleep(2);
}
// default success
}
安装
- 源码下载 打包安装
- docker 安装
- docker pull xuxueli/xxl-job-admin:2.3.0
- docker run -e PARAMS="–spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0
- docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0
mysql 替换 h2
- h2 url兼容mysql模式:jdbc:h2:E:/ic;MODE=MYSQL
- sql date_add 函数没有,增加逻辑在java代码处理
- sql where ! ,h2中不识别;替换为 where not