xxl-job-入门使用
工程结构
到 github 中 git clone xxl-job 工程:
其中:
- xxl-job-admin: job 管理台
- xxl-job-core: 核心模块
- xxl-job-executor-samples: 一些示例
启动 xxl-job-admin
在 applicaition.properties
中修改 数据库地址,这里为本地:
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=111111
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
直接启动 启动类,然后访问 http://127.0.0.1:8080/xxl-job-admin/
:
自定义job
在 xxl-job-executor-samples
中找到 xxl-job-executor-sample-springboot
:
新建 Job, 这里采用 Bean 模式:
@Component
public class HelloJob {
@XxlJob(value = "helloJob")
public ReturnT<String> execute(String param) throws Exception {
String now = LocalDateTime.now().format(
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(now + "XXL-JOB, Hello World. param: "+ param);
return ReturnT.SUCCESS;
}
}
application.properties
都不需要动,直接启动
# web port
# 需要修改,如果多个实例
server.port=8082
# 需要修改,如果多个实例
xxl.job.executor.port=9998
然后查看job管理台,这时还需要定义 job, 在 :
新建任务:
这里虽然定义了 job, 但状态还是 stop ,所以需要启动
然后 job 状态变成 running
查看控制台:
2020-07-06 21:53:10XXL-JOB, Hello World. param: key: spring
2020-07-06 21:53:20XXL-JOB, Hello World. param: key: spring
2020-07-06 21:53:30XXL-JOB, Hello World. param: key: spring
2020-07-06 21:53:40XXL-JOB, Hello World. param: key: spring
...
it work!
多台 job 实例
再启动另一个实例
# web port
# 需要修改,如果多个实例
server.port=8081
# 需要修改,如果多个实例
xxl.job.executor.port=9999
查看 job 管理台 注册节点:
然后在刚刚注册上去的机器执行任务:
可以在第二个实例中看到:
2020-07-06 22:08:14XXL-JOB, Hello World. param: 第二个机器