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

XXL-JOB快速入门

🌟 什么是 XXL-JOB?

XXL-JOB 是一个轻量级、开源的分布式任务调度平台,由大众点评工程师许雪里(作者名字缩写为 xxl)开发并开源。
它的目标是:让定时任务的管理变得简单、可靠、可视化

官网地址:https://www.xuxueli.com/xxl-job/


🔑 核心概念(5大核心角色)

1. 调度中心(Admin)

  • 角色:任务的“指挥官”。
  • 功能
    • 提供 Web 管理界面,用于创建、修改、删除、触发定时任务;
    • 管理所有注册进来的“执行器”;
    • 按照 cron 表达式调度任务,决定“什么时候、调用哪个执行器的哪个方法”;
    • 记录调度日志、查看执行结果。
  • 部署方式:通常独立部署为一个 Web 应用(如 xxl-job-admin),通过浏览器访问。

2. 执行器(Executor)

  • 角色:任务的“执行者”。
  • 说明
    • 实际运行定时任务的 Java 应用程序(比如你的 Spring Boot 服务);
    • 启动后会主动向“调度中心”注册自己(心跳机制);
    • 接收调度中心发来的任务执行请求,并运行具体的方法。
  • 关键配置
    • appname:执行器的唯一标识;
    • ip/port:网络地址,供调度中心回调;
    • logPath:本地任务日志存储路径。

✅ 一个调度中心可以管理多个执行器,实现分布式调度。


3. 任务(Job / Task)

  • 定义:你要执行的具体逻辑,比如“每天凌晨清理日志”、“每小时同步数据”等。
  • 在 XXL-JOB 中称为 JobHandler
  • 实现方式
    • 在执行器项目中编写一个 Java 方法,并加上 @XxlJob("methodName") 注解;
    • 调度中心通过这个名字来调用它。
@XxlJob("myTask")
public void myTask() {System.out.println("执行了我的定时任务!");
}

4. 调度(Trigger)

  • 含义:由调度中心发起的一次“调用指令”。
  • 触发方式
    • Cron 表达式:最常用,比如 0 0 2 * * ? 表示每天凌晨2点执行;
    • 手动触发:在管理后台点击“执行”按钮;
    • API 触发:通过 HTTP 接口远程调用;
    • 父子任务、失败重试 等高级触发方式。

调度 ≠ 执行。调度是“发命令”,执行是“干活”。


5. 调度日志 & 执行日志

  • 调度日志:记录“调度中心是否成功发出了调度请求”;
  • 执行日志:记录“执行器那边任务是否成功运行、输出了什么内容”;
  • 日志支持查看、搜索、失败告警、清理保留等。

🧩 工作流程(一次任务是如何执行的?)

  1. 执行器启动 → 向调度中心注册自己(上报 IP、端口、appname);
  2. 你在调度中心后台 → 创建一个任务,选择目标执行器和 JobHandler 方法名;
  3. 到达 cron 时间点 → 调度中心根据任务配置,向对应的执行器发送 HTTP 请求;
  4. 执行器收到请求 → 执行标注了 @XxlJob 的方法;
  5. 执行完成后 → 执行器将结果返回给调度中心,并写入本地日志;
  6. 你在后台 → 可以查看这次调度的状态(成功/失败)、日志输出、耗时等。
[调度中心 Admin]↓ (HTTP 调用)
[执行器 Executor] → 运行 @XxlJob 方法↓
[返回执行结果]
[调度中心记录日志]

✅ 为什么使用 XXL-JOB?(对比传统 Timer/Scheduled)

功能传统 @ScheduledXXL-JOB
可视化界面❌ 无✅ 有
分布式调度❌ 难实现✅ 支持
动态增删任务❌ 编码固定✅ 后台操作
失败重试❌ 无✅ 支持
告警通知(邮件、企业微信)❌ 无✅ 支持
执行日志查看❌ 困难✅ 详细日志
权限管理❌ 无✅ 支持

🏗️ 常见术语速查表

术语说明
JobHandler任务处理器,即被 @XxlJob 注解的方法名
appname执行器的唯一标识,在配置中设置
access-token安全令牌,防止非法调用
GLUE在线写脚本的方式(Java、Shell、Python 等),无需重新发布服务
阻塞策略当任务还没执行完又到了下次调度时间,如何处理(丢弃、覆盖、串行等)
失败重试任务失败后自动重试几次
分片广播将任务拆成多个“片”,分发到不同机器并行执行,适合大数据处理

📦 总结:一句话理解 XXL-JOB

XXL-JOB = 调度中心(管任务) + 执行器(跑代码) + Web 界面(看结果)

它让你像使用“钉钉闹钟”一样,轻松管理和监控分布在各个服务上的定时任务。


如果你已经配置好了 xxl-job-admin 和执行器,就可以登录后台(如 http://192.168.150.101:8880/xxl-job-admin)开始创建你的第一个定时任务了!

http://www.dtcms.com/a/318393.html

相关文章:

  • cygwin+php教程(swoole扩展+redis扩展)
  • 【完整源码+数据集+部署教程】爬行动物异常检测系统源码和数据集:改进yolo11-GhostDynamicConv
  • 一个php 连sqlserver 目标计算机积极拒绝,无法连接问题的解决
  • 第三节 YOLOv5数据集构成
  • 集成显卡 vs 独立显卡:如何通过设备管理器识别你的GPU?
  • Docker 常用命令介绍
  • 【docker】完整 Dockerfile 示例和构建运行指南
  • 飞浆 paddleocr 识别图片上文字的角度
  • 学习 Android(十四)NDK基础
  • OpenWebUI通过pipeline对接dify的workflow
  • 滑动窗口相关题目
  • VirtualBox 搭建 Linux 虚拟机全流程:Nginx 学习环境前置配置指南
  • ##Anolis OS 8.10 安装oracle19c
  • 广州汽车配件3d打印模型加工厂家-中科米堆CASAIM
  • 【计组】存储系统
  • 3479. 水果成篮 III
  • Tiny-cuda-nn安装指南
  • CVE-2021-1879
  • Linux系统编程——环境变量、命令行参数
  • Dart语言语法与技术重点
  • 数据结构—队列和栈
  • openGauss单实例安装
  • YOLOv11改进:集成FocusedLinearAttention与C2PSA注意力机制实现性能提升
  • Redis使用的常见问题及初步认识
  • PLC学习之路-数据类型与地址表示-(二)
  • WinXP配置一键还原的方法
  • 【golang面试题】Golang递归函数完全指南:从入门到性能优化
  • 五十二、【Linux系统shell脚本】正则表达式演示
  • 202506 电子学会青少年等级考试机器人五级实际操作真题
  • 数据结构:栈、队列