当前位置: 首页 > news >正文

xxl-job的使用

xxl-job 简介

xxl-job 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。它解决了传统任务调度系统的单点故障与调度性能瓶颈问题,支持分片广播、任务依赖、故障转移等特性。

部署 xxl-job

数据库初始化

下载官方提供的 SQL 脚本,初始化数据库表结构。SQL 脚本通常包含 xxl_job_db.sql 文件,需在 MySQL 中执行。

-- 示例:执行SQL脚本
mysql -u root -p xxl_job < xxl_job_db.sql
调度中心部署

调度中心是 xxl-job 的核心组件,负责任务管理和调度。

  1. 下载源码
    从 GitHub 或 Gitee 下载 xxl-job 源码,解压后找到 xxl-job-admin 模块。

  2. 修改配置
    编辑 application.properties 文件,配置数据库连接:

    spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8
    spring.datasource.username=root
    spring.datasource.password=123456
    
  3. 启动调度中心
    通过 Spring Boot 方式启动:

    java -jar xxl-job-admin-2.3.0.jar
    
执行器部署

执行器负责接收调度请求并执行任务逻辑。

  1. 引入依赖
    在项目中添加 xxl-job 执行器依赖:

    <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.3.0</version>
    </dependency>
    
  2. 配置执行器
    application.yml 中配置执行器参数:

    xxl:job:admin:addresses: http://localhost:8080/xxl-job-adminexecutor:appname: xxl-job-executor-sampleaddress: ip: 127.0.0.1port: 9999logpath: /data/applogs/xxl-job/jobhandlerlogretentiondays: 30
    
  3. 启动执行器
    在 Spring Boot 主类上添加注解:

    @SpringBootApplication
    public class XxlJobExecutorApplication {public static void main(String[] args) {SpringApplication.run(XxlJobExecutorApplication.class, args);}
    }
    

任务开发与配置

编写任务逻辑

通过 @XxlJob 注解定义任务方法:

@Component
public class SampleJobHandler {@XxlJob("demoJobHandler")public ReturnT<String> execute(String param) throws Exception {System.out.println("XXL-JOB, Hello World: " + param);return ReturnT.SUCCESS;}
}
调度中心配置任务
  1. 登录调度中心(默认地址 http://localhost:8080/xxl-job-admin)。
  2. 进入「任务管理」页面,新增任务:
    • 执行器:选择绑定的执行器。
    • 任务描述:填写任务描述信息。
    • 调度类型:支持 CRON 和固定速率。
    • JobHandler:填写 @XxlJob 注解中定义的任务名称(如 demoJobHandler)。
    • 其他参数:按需配置任务参数、路由策略等。

高级特性

分片任务

适用于大数据量并行处理场景:

@XxlJob("shardingJobHandler")
public ReturnT<String> shardingJob(String param) {// 获取分片信息ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();System.out.println("分片编号:" + shardingVO.getIndex());return ReturnT.SUCCESS;
}
任务依赖

通过父子任务实现依赖关系:

  1. 父任务执行完成后触发子任务。
  2. 在任务配置中填写子任务 ID(多个用逗号分隔)。

运维与监控

  1. 日志查看
    调度中心提供任务执行日志查询功能,支持实时查看执行状态和日志详情。

  2. 告警配置
    在「任务管理」中配置告警邮箱,任务失败时自动触发邮件通知。

  3. 调度报表
    通过「调度中心」首页查看任务调度次数、成功/失败率等统计数据。

注意事项

  1. 执行器需保持与调度中心的网络连通性。
  2. 任务逻辑需避免长时间阻塞,建议设置超时时间。
  3. 分片任务需确保任务逻辑支持幂等性。

文章转载自:

http://78LDIGpR.nydtt.cn
http://Tvpswh2J.nydtt.cn
http://OzolGkdq.nydtt.cn
http://CJiUaPna.nydtt.cn
http://rWXFllwt.nydtt.cn
http://e1SkqTF8.nydtt.cn
http://OrD0aVZb.nydtt.cn
http://GqrXA8IY.nydtt.cn
http://hcuUDF2J.nydtt.cn
http://zg75kE6P.nydtt.cn
http://sC3W4E5A.nydtt.cn
http://QXhiuLZc.nydtt.cn
http://fiHOvvmu.nydtt.cn
http://h7uDgx4h.nydtt.cn
http://0hoMJ31e.nydtt.cn
http://Ad1jGo2s.nydtt.cn
http://dKLlJRHn.nydtt.cn
http://IJZzo40M.nydtt.cn
http://W1T2Mris.nydtt.cn
http://FWLvxkaj.nydtt.cn
http://qvW8ylCa.nydtt.cn
http://D9d5Vyuv.nydtt.cn
http://14Jjv3te.nydtt.cn
http://HZJuEZN1.nydtt.cn
http://rpjf0RuJ.nydtt.cn
http://lPFWLOtc.nydtt.cn
http://G4Zbamc0.nydtt.cn
http://7FdxtSEd.nydtt.cn
http://iHdtNMB8.nydtt.cn
http://EKMRLnux.nydtt.cn
http://www.dtcms.com/a/382105.html

相关文章:

  • 2025 年 9 月 12 日科技前沿动态全览
  • 高德地图自定义 Marker:点击 悬停 显示信息框InfoWindow实战(Vue + AMap 2.0)
  • 猿辅导Java后台开发面试题及参考答案
  • 启动项目提示:org.springframework.context.annotation不存在问题
  • 从零开始的指针(3)
  • “移动零”思路与题解
  • 大模型训练框架:Swift 框架
  • [笔记] 来到了kernel 5.14
  • 【算法笔记】快速排序算法
  • 数据结构——顺序表(c语言笔记)
  • Java 黑马程序员学习笔记(进阶篇6)
  • Day04 前缀和差分 1109. 航班预订统计 、304. 二维区域和检索 - 矩阵不可变
  • Java 类加载与对象内存分配机制详解
  • 【数据结构——图与邻接矩阵】
  • 再次深入学习深度学习|花书笔记1
  • 信息检索、推荐系统模型排序质量指标:AP@K和MAP@K
  • 详解 OpenCV 形态学操作:从基础到实战(腐蚀、膨胀、开运算、闭运算、梯度、顶帽与黑帽)
  • 《2025年AI产业发展十大趋势报告》五十五
  • 【面试题】RAG优化策略
  • 06 一些常用的概念及符号
  • Oracle事件10200与10201解析:数据库读一致性CR与Undo应用
  • 新手向:C语言、Java、Python 的选择与未来指南
  • 【人工智能通识专栏】第十四讲:语音交互
  • 3.RocketMQ核心源码解读
  • 微信小程序开发教程(十一)
  • [硬件电路-194]:NPN三极管、MOS-N, IGBT比较
  • 零基础学AI大模型之AI大模型常见概念
  • [Dify] 插件节点用法详解:如何将插件整合进工作流
  • 2025年数字公共治理专业重点学什么内容?(详细指南)
  • 如何在 Windows 系统中对硬盘 (SSD) 进行分区