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

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.xdnf.cn/news/17106.html

相关文章:

  • 【数据分享】西藏土壤类型数据库
  • imx6ull-驱动开发篇11——gpio子系统
  • 大模型客户端工具如Cherry Studio,Cursor 配置mcp服务,容易踩的坑,总结
  • 力扣经典算法篇-44-组合总和(回溯问题)
  • 进程管理块(PCB):操作系统进程管理的核心数据结构
  • NineData 新增支持 AWS ElastiCache 复制链路
  • 开疆智能ModbusTCP转Profinet网关连接安川YRC1000机器人配置案例
  • Effective C++ 条款25:考虑写出一个不抛异常的swap函数
  • 每日任务day0806:小小勇者成长记之收获日
  • NAT转化
  • Knife4j:实时接口文档的利器
  • PyTorch生成式人工智能(26)——使用PyTorch构建GPT模型
  • 学习 Android (十六) 学习 OpenCV (一)
  • 基于PHP的论坛社交网站系统开发与设计
  • Spring Boot 参数校验全指南
  • [滑动窗口]904. 水果成篮
  • 基于PHP的快递管理系统的设计与实现
  • 【动态规划 | 01背包】动态规划经典:01背包问题详解
  • C++线程中 detach() 和 join() 的区别
  • FPGA学习笔记——VGA彩条显示
  • AVDTP Media Packet 传输全流程解析:从 SDP 到连接终止
  • 从 0 到 1 创建 InfluxDB 3 表:标签、字段、命名规范一篇讲透
  • X86-ubuntu22.04远程桌面只有1/4无法正常操作
  • C++实现线程池(5)计划线程池
  • python学智能算法(三十四)|SVM-KKT条件回顾
  • KGF75N65KDF-U/H KEC 集成电路IC 工业电机驱动
  • 加密视频流程教程分享
  • 移动商城平台适配:ZKmall开源商城鸿蒙 / 小程序端开发要点
  • Mark两个Redis for windows
  • 【概念学习】深度学习有何不同