Spring Cloud 搭建 XXL-JOB 任务调度平台教程

在微服务架构中,任务调度是一个不可或缺的功能。XXL-JOB 是一个轻量级的分布式任务调度平台,能够帮助我们实现定时任务的管理和调度。接下来,我们将通过 Spring Cloud 搭建一个 XXL-JOB 任务调度平台。

环境准备

  1. JDK 1.8 或以上版本
  2. Maven 3.5 或以上版本
  3. MySQL 5.7 或以上版本
  4. 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 中配置任务

  1. 访问 http://localhost:8080/xxl-job-admin
  2. 登录(默认账号密码为 admin/xxl)
  3. 在任务管理页面创建一个新任务,配置执行器、Handler(如 simpleJobHandler)、Cron 表达式等相关信息,保存并进行测试。

结语

通过以上步骤,我们成功搭建了一个基于 Spring Cloud 的 XXL-JOB 任务调度平台。XXL-JOB 提供了丰富的功能并且易于使用,适合各类需要任务调度的应用场景。可以根据需求不断完善和扩展功能,构建更加复杂的定时任务。希望这篇教程能够帮助到你!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部