xxl-job概念
xxlJob是轻量级的可视化分布式任务调度平台,适用于中小型企业。主要特性如下:
- 简单、动态、轻量级、支持弹性扩容缩容、事件全异步执行、跨语言。
- 调度中心和执行任务解耦
- 调度任务支持多种不同场景的路由策略、容错策略、触发策略
- 运维更便捷
环境准备和部署
Github地址源码: https://github.com/xuxueli/xxl-job
官网中文说明文档:https://www.xuxueli.com/xxl-job/#《分布式任务调度平台XXL-JOB》
中央仓库地址:
<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>${最新稳定版本}</version>
</dependency>
环境要求:
- Maven3+
- Jdk17+ (说明:版本3.x开始要求Jdk17;版本2.x及以下支持Jdk1.8。如对Jdk版本有诉求,可选择接入不同版本。)
- Mysql8.0+
数据库初始化
下载官方源码,运行SQL 脚本(位置:xxl-job/doc/db/tables_xxl_job.sql
)。
新建数据库名:xxl_job
。
使用xxl-job-admin,调度任务
下载官方源码,并修改配置文件:
修改xxl-job-admin
模块的application.properties
文件,配置数据库连接信息(URL、用户名、密码).
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:13306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
启动调度中心(XxlJobAdminApplication)。(调度中心默认端口8080
),访问http://localhost:8080/xxl-job-admin/toLogin 。 默认账号(admin
,密码:123456
)。
启动执行器(XxLJobExecutorApplication)。
官方文档项目结构介绍
doc: 文档资料,包括“调度数据库”建表脚本
xxl-job-core: 公共jar依赖
xxl-job-admin : 调度中心,项目源码,Spring Boot项目,可以直接启动
xxl-job-executor-samples: 执行器,sample示例项目,其中的Spring Boot工程工程,可以直接启动。可以在改项目上进行开发,也可以将向右的项目改造成生命执行器。
定位到 jobHandler下,新增定时任务。(【xxl-job-executor-samples】→【xxl-job-executor-sample-springbooot】→【src】→【com.xxl.job.executor.service.jobhandler】 ,新增定时任务类名:【MyJobHandle】),新增任务代码如下:
@Component
public class MyJobHandle {/*** 测试简单任务* @param param 参数* @return 返回结果*/@XxlJob(value = "myJobHandler" ,init = "", destroy = "")public ReturnT<String> myJobHandler(String param) {// 模拟业务运行System.out.println("【demoJobHandler】【时间】:" + LocalDateTime.now());// 返回成功return ReturnT.SUCCESS;}
}
重新启动后,配置任务任务管理。可以看到执行器,执行成功的返回输出,以及调度日志的成功日志。