Spring Cloud 搭建 XXL-JOB 任务调度平台教程
在微服务架构中,任务调度是一个不可或缺的功能。XXL-JOB 是一个轻量级的分布式任务调度平台,能够帮助我们实现定时任务的管理和调度。接下来,我们将通过 Spring Cloud 搭建一个 XXL-JOB 任务调度平台。
环境准备
- JDK 1.8 或以上版本
- Maven 3.5 或以上版本
- MySQL 5.7 或以上版本
- Redis (可选,用于存储任务的状态等)
步骤1:创建数据库
首先,我们需要在 MySQL 中创建一个数据库用于存储 XXL-JOB 的相关数据。
CREATE DATABASE xxl_job;
USE xxl_job;
CREATE TABLE `xxl_job_group` ...; -- 请根据 XXL-JOB 官网提供的 SQL 创建表
CREATE TABLE `xxl_job_info` ...; -- 请根据 XXL-JOB 官网提供的 SQL 创建表
CREATE TABLE `xxl_job_log` ...; -- 请根据 XXL-JOB 官网提供的 SQL 创建表
-- 其他表的创建语句根据需要添加
步骤2:引入依赖
在 Spring Boot 应用的 pom.xml
文件中添加 XXL-JOB 的依赖。
<dependency>
<groupId>com.xxljob</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
步骤3:配置数据源
在 application.yml
文件中配置数据源和 XXL-JOB 的相关属性。
spring:
datasource:
url: jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
xxl:
job:
admin:
addresses: http://127.0.0.1:8080/xxl-job-admin # XXL-JOB admin 地址
executor:
appname: xxl-job-executor-sample # 任务执行器名称
ip: 127.0.0.1 # 执行器 IP
port: 9999 # 执行器端口
logpath: /data/applogs/xxl-job/jobhandler # 日志路径
logretentiondays: 30 # 日志保留天数
步骤4:创建 XXL-JOB Admin
接下来我们需要搭建 XXL-JOB Admin 的管理界面。在 GitHub 上下载 XXL-JOB 的 Admin 源码,或者直接使用提供的 Docker 镜像来启动 Admin 服务。
使用 Docker 启动:
docker run -d --name xxl-job-admin \
-p 8080:8080 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=your_password \
-e MYSQL_DATABASE=xxl_job \
-e MYSQL_HOST=127.0.0.1 \
--network host \
xuxueli/xxl-job-admin
步骤5:编写任务处理程序
在我们的 Spring Boot 应用中,创建一个处理任务的类。
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@Component
public class SimpleJobHandler {
@XxlJob("simpleJobHandler")
public void execute() throws Exception {
System.out.println("Hello XXL-JOB, this is a simple job!");
// 你的业务逻辑
}
}
步骤6:启动应用
最后启动你的 Spring Boot 应用程序,确保没有错误,并且 XXL-JOB 执行器能够正常与 Admin 进行通信。
步骤7:在 XXL-JOB Admin 中配置任务
- 访问
http://localhost:8080/xxl-job-admin
- 登录(默认账号密码为
admin/xxl
) - 在任务管理页面创建一个新任务,配置执行器、Handler(如
simpleJobHandler
)、Cron 表达式等相关信息,保存并进行测试。
结语
通过以上步骤,我们成功搭建了一个基于 Spring Cloud 的 XXL-JOB 任务调度平台。XXL-JOB 提供了丰富的功能并且易于使用,适合各类需要任务调度的应用场景。可以根据需求不断完善和扩展功能,构建更加复杂的定时任务。希望这篇教程能够帮助到你!