# chain-cloud-xxl-job **Repository Path**: itheima-chain-cloud/chain-cloud-xxl-job ## Basic Information - **Project Name**: chain-cloud-xxl-job - **Description**: xxl-job入门配套代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # chain-cloud-xxl-job 基于 Spring Boot 和 XXL-JOB 的分布式任务调度系统。 ## 📋 项目简介 本项目是一个基于 XXL-JOB 分布式任务调度平台的 Spring Boot 应用程序,提供了任务调度的执行器功能。项目演示了如何集成 XXL-JOB 并实现普通任务和分片式任务。 ## 🏗️ 技术栈 - **Java 17** - **Spring Boot 2.7.12** - **XXL-JOB 2.4.1** - 分布式任务调度平台 - **Hutool 5.8.0.M3** - Java 工具库 - **Maven** - 项目构建工具 ## 📁 项目结构 ``` chain-cloud-xxl-job/ ├── src/main/java/com/itheima/ │ ├── XxlJobApplication.java # Spring Boot 启动类 │ └── xxljob/ │ ├── config/ │ │ └── XxlJobConfig.java # XXL-JOB 配置类 │ └── job/ │ └── JobHandler.java # 任务处理器 ├── src/main/resources/ │ └── bootstrap.yml # 应用配置文件 ├── pom.xml # Maven 依赖配置 └── README.md # 项目说明文档 ``` ## 🔧 核心功能 ### 1. XXL-JOB 配置 (`XxlJobConfig.java`) 配置 XXL-JOB 执行器,包括: - 调度中心地址 - 执行器应用名称 - IP 地址和端口 - 日志路径和保留天数 - 访问令牌 ### 2. 任务处理器 (`JobHandler.java`) 实现了两种类型的任务: #### 普通任务 (`firstJob`) - 简单的定时任务 - 遍历数据列表并记录日志 - 支持任务执行日志输出 #### 分片式任务 (`shardingJob`) - 分布式分片任务 - 支持多节点并行处理 - 根据分片参数分配数据 - 提高任务处理效率 ## ⚙️ 配置说明 ### 应用配置 (`bootstrap.yml`) ```yaml application: version: v1.0 spring: application: name: chain-cloud-xxl-job server: port: 9901 xxl: job: admin: addresses: http://192.168.150.101:28080/xxl-job-admin # 调度中心地址 executor: ip: 192.168.150.1 # 执行器IP appname: ${spring.application.name} # 执行器应用名 logpath: /data/applogs/xxl-job/jobhandler # 日志路径 logretentiondays: 30 # 日志保留天数 ``` ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - XXL-JOB 调度中心(版本 2.4.1) ### 安装步骤 1. **克隆项目** ```bash git clone <项目地址> cd chain-cloud-xxl-job ``` 2. **构建项目** ```bash mvn clean package -DskipTests ``` 3. **配置调度中心** 修改 `bootstrap.yml` 中的配置: - `xxl.job.admin.addresses`: 调度中心地址 - `xxl.job.executor.ip`: 执行器IP地址 4. **启动应用** ```bash java -jar target/chain-cloud-xxl-job-1.0-SNAPSHOT.jar ``` 5. **验证启动** 应用启动后,执行器会自动注册到 XXL-JOB 调度中心,端口为 9901。 ## 📝 使用说明 ### 在调度中心添加任务 1. 登录 XXL-JOB 调度中心管理界面 2. 在任务管理中添加新任务 3. 配置任务参数: - **执行器**: chain-cloud-xxl-job - **任务描述**: 任务描述信息 - **JobHandler**: firstJob 或 shardingJob - **调度类型**: CRON 表达式 ### 任务类型说明 | 任务名称 | 类型 | 说明 | |---------|------|------| | `firstJob` | 普通任务 | 单节点执行,遍历全部数据 | | `shardingJob` | 分片任务 | 多节点分片执行,提高处理效率 | ## 📚 核心概念 ### XXL-JOB 架构 - **调度中心**: 统一管理任务调度平台 - **执行器**: 实际执行业务任务的客户端 - **JobHandler**: 具体的任务处理方法 ### 分片任务原理 分片任务通过以下参数实现分布式处理: - `shardTotal`: 分片节点总数 - `shardIndex`: 当前节点下标(从0开始) 通过 `data % shardTotal == shardIndex` 的方式分配数据,确保每个节点处理不同的数据分片。 ## 🛠️ 开发指南 ### 添加新任务 1. 在 `JobHandler.java` 中添加新方法 2. 使用 `@XxlJob("任务名")` 注解标注方法 3. 实现业务逻辑 示例: ```java @XxlJob("myNewJob") public void myNewJob() { // 业务逻辑 XxlJobHelper.log("任务执行中..."); } ``` ### 日志记录 使用 `XxlJobHelper.log()` 方法记录任务日志,日志会输出到 XXL-JOB 管理界面。 ## 📌 注意事项 1. **调度中心地址**: 确保调度中心地址正确配置且网络可达 2. **IP 地址**: 执行器 IP 地址需要是调度中心可访问的地址 3. **端口配置**: 默认端口 9901,如冲突可修改 `server.port` 4. **日志路径**: 确保应用有权限访问配置的日志路径 5. **分片任务**: 分片任务需要多节点部署才能体现优势 ## 🔗 相关资源 - [XXL-JOB 官方文档](https://www.xuxueli.com/xxl-job/) - [Spring Boot 官方文档](https://spring.io/projects/spring-boot) - [Hutool 工具库](https://hutool.cn/) ## 📄 License 本项目仅用于学习和演示目的。 --- **作者**: 张志君 **创建日期**: 2026-06-05 **版本**: 1.0-SNAPSHOT