xxl-job 是轻量级分布式任务调度平台,通过解耦调度中心与执行器实现http通信;需部署xxl-job-admin并初始化数据库,业务项目集成xxl-job-executor,配置appname、cron等后即可调度任务。

XXL-JOB 是一个轻量级、开箱即用的分布式任务调度平台,适合 Java 项目快速接入定时任务调度能力。核心思路是:把调度中心(xxl-job-admin)和执行器(xxl-job-executor)解耦部署,通过 HTTP 通信完成任务下发与结果上报。
一、部署调度中心(xxl-job-admin)
调度中心是任务管理后台,负责任务配置、触发、监控和日志查看。推荐使用官方提供的 Spring Boot 版本:
- 下载源码或 release 包(如 xxl-job-admin-2.4.1.jar),修改 application.properties 中数据库连接、登录账号密码等基础配置
- 初始化 SQL 脚本(doc/db/tables_xxl_job.sql)到 MySQL,确保表结构完整
- 启动服务:
java -jar xxl-job-admin.jar,访问 http://localhost:8080/xxl-job-admin,默认账号密码为 admin / 123456
二、在业务项目中集成执行器(xxl-job-executor)
执行器是嵌入你 Spring Boot 项目的模块,负责接收调度指令并执行具体逻辑。关键步骤如下:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 引入 Maven 依赖:
xxl-job-core(注意版本需与调度中心一致) - 配置 application.yml,填写调度中心地址、执行器AppName、注册方式(推荐自动注册)、端口等
- 编写配置类(如 XxlJobConfig),注入
XxlJobSpringExecutorBean,完成初始化 - 创建任务类,使用
@XxlJob("demoJobHandler")注解标记方法,参数为String params,返回ReturnT.SUCCESS或失败码
三、在调度中心配置并触发任务
配置过程直观,但几个字段直接影响运行效果:
-
执行器名称(AppName) 必须与执行器配置中的
xxl.job.executor.appname完全一致 - 注册方式 推荐选“自动注册”,执行器启动后会主动上报 IP 和端口;若网络受限,可选“手动录入”
- 路由策略 根据集群规模选择,如单机用“第一个”,多实例可用“轮询”或“一致性哈希”
-
Cron 表达式 填写标准 Quartz 格式(如
0 0/30 * * * ?表示每半小时执行),支持在线校验 - 保存后启用任务,可在“任务列表”中手动触发测试,查看“调度日志”确认是否成功派发
四、常见问题与调优建议
实际落地时容易卡在通信或执行环节,重点关注以下几点:
- 执行器无法注册?检查网络连通性、AppName 是否匹配、调度中心是否已启动且能被访问
- 任务执行失败但日志无报错?确认执行器中任务方法是否加了
@XxlJob注解,且所在类被 Spring 扫描到(避免使用 static 方法) - 并发任务堆积?调整执行器线程池大小(
xxl.job.executor.core-thread-pool-size),或开启分片广播模式处理海量数据 - 敏感参数如 DB 密码、API Key 不宜写死,可通过 Nacos 或 Apollo 动态注入,再映射到 XXL-JOB 配置项
不复杂但容易忽略细节,把调度中心稳住、执行器对齐、任务配置写准,就能稳定支撑中小规模分布式定时场景。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










