XXL-JOB v2.5.0 详细使用指南:从零搭建到任务开发
XXL-JOB 是一个轻量级分布式任务调度平台核心设计是调度中心Admin与执行器Executor分离调度中心负责任务的管理和触发执行器负责接收调度请求并执行业务代码。下面从零开始一步步说明如何使用 v2.5.0。一、部署调度中心Admin1.1 获取源码从官方仓库下载源码# GitHubgitclone https://github.com/xuxueli/xxl-job.git# 或 Gitee国内更快gitclone https://gitee.com/xuxueli0323/xxl-job.git项目结构说明xxl-job-admin调度中心需要部署xxl-job-core公共核心依赖执行器引入xxl-job-executor-samples执行器示例代码doc/db/tables_xxl_job.sql数据库初始化脚本1.2 初始化数据库执行doc/db/tables_xxl_job.sql脚本会生成 8 张表表名用途xxl_job_lock任务调度锁表分布式调度协调xxl_job_group执行器信息表xxl_job_info任务扩展信息表xxl_job_log调度日志表xxl_job_log_report调度日志报表xxl_job_logglueGLUE 模式日志版本回溯xxl_job_registry执行器注册表xxl_job_user系统用户表1.3 修改配置文件编辑xxl-job-admin/src/main/resources/application.properties必须修改以下配置# 1. 数据库连接必须修改 spring.datasource.urljdbc:mysql://your-host:3306/xxl_job?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueserverTimezoneAsia/ShanghaiuseSSLfalse spring.datasource.usernameyour-username spring.datasource.passwordyour-password spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # 2. AccessToken生产环境必须修改为复杂随机字符串 xxl.job.accessTokenyour-production-token # 3. 可选日志保留天数 xxl.job.logretentiondays30 # 4. 可选线程池大小 xxl.job.triggerpool.fast.max200 xxl.job.triggerpool.slow.max1001.4 启动调度中心直接运行XxlJobAdminApplication类的 main 方法。访问http://localhost:8080/xxl-job-admin默认用户名/密码admin/123456。登录后可以看到以下功能模块运行报表调度中心首页整体运行情况任务管理配置任务的地方最常用调度日志所有任务调度记录执行器管理管理注册上来的执行器用户管理多账号管理二、搭建执行器Executor2.1 引入依赖在业务项目的pom.xml中添加dependencygroupIdcom.xuxueli/groupIdartifactIdxxl-job-core/artifactIdversion2.5.0/version/dependency2.2 配置执行器在application.yml或application.properties中配置# 调度中心地址集群用逗号分隔多个 xxl.job.admin.addresseshttp://localhost:8080/xxl-job-admin # 执行器名称唯一标识 xxl.job.executor.appnamexxl-job-executor-demo # 执行器端口默认9999生产建议修改 xxl.job.executor.port9999 # AccessToken必须与调度中心一致 xxl.job.accessTokenyour-production-token # 日志路径 xxl.job.executor.logpath/data/applogs/xxl-job/jobhandler # 日志保留天数 xxl.job.executor.logretentiondays302.3 初始化执行器 Bean创建配置类初始化XxlJobSpringExecutorimportcom.xxl.job.core.executor.impl.XxlJobSpringExecutor;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;ConfigurationpublicclassXxlJobConfig{privateLoggerloggerLoggerFactory.getLogger(XxlJobConfig.class);Value(${xxl.job.admin.addresses})privateStringadminAddresses;Value(${xxl.job.executor.appname})privateStringappname;Value(${xxl.job.executor.port})privateintport;Value(${xxl.job.accessToken})privateStringaccessToken;Value(${xxl.job.executor.logpath})privateStringlogPath;Value(${xxl.job.executor.logretentiondays})privateintlogRetentionDays;BeanpublicXxlJobSpringExecutorxxlJobExecutor(){logger.info( xxl-job config init.);XxlJobSpringExecutorexecutornewXxlJobSpringExecutor();executor.setAdminAddresses(adminAddresses);executor.setAppname(appname);executor.setPort(port);executor.setAccessToken(accessToken);executor.setLogPath(logPath);executor.setLogRetentionDays(logRetentionDays);returnexecutor;}}2.4 启动执行器启动业务应用后执行器会自动向调度中心注册。登录调度中心后台在执行器管理页面应该能看到注册上来的执行器信息。三、编写任务代码BEAN 模式生产环境强烈推荐使用 BEAN 模式而不是 GLUE 模式。BEAN 模式的代码在业务项目中可以进行版本控制和 Code Review更加安全可控。3.1 简单任务示例importcom.xxl.job.core.context.XxlJobHelper;importcom.xxl.job.core.handler.annotation.XxlJob;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Component;ComponentpublicclassSampleXxlJob{privatestaticLoggerloggerLoggerFactory.getLogger(SampleXxlJob.class);/** * 简单任务示例 * 注解中的 demoJobHandler 是任务标识在调度中心配置时需要用到 */XxlJob(demoJobHandler)publicvoiddemoJobHandler()throwsException{XxlJobHelper.log(XXL-JOB, Hello World.);// 获取任务参数在调度中心配置时填写StringjobParamXxlJobHelper.getJobParam();XxlJobHelper.log(任务参数: {},jobParam);for(inti0;i5;i){XxlJobHelper.log(beat at: {},i);Thread.sleep(2000);}// 默认返回 SUCCESS}}3.2 分片广播任务示例当执行器集群部署时使用分片广播路由策略可以让每个节点处理一部分数据提高处理效率。importcom.xxl.job.core.context.XxlJobHelper;importcom.xxl.job.core.handler.annotation.XxlJob;importorg.springframework.stereotype.Component;ComponentpublicclassShardingJob{XxlJob(shardingJobHandler)publicvoidshardingJobHandler()throwsException{// 获取分片参数intshardIndexXxlJobHelper.getShardIndex();// 当前分片序号从0开始intshardTotalXxlJobHelper.getShardTotal();// 总分片数XxlJobHelper.log(分片参数当前分片序号 {}, 总分片数 {},shardIndex,shardTotal);// 业务逻辑根据分片参数查询数据// 例如从数据库查询 order_id % shardTotal shardIndex 的数据// 每个节点只处理自己分片的数据避免重复处理for(inti0;ishardTotal;i){if(ishardIndex){XxlJobHelper.log(第 {} 片命中分片开始处理,i);// 执行具体业务逻辑...}else{XxlJobHelper.log(第 {} 片忽略,i);}}}}分片广播适用场景海量数据处理、日志分析、订单批量处理等需要并行提升效率的场景。四、在调度中心配置任务登录调度中心后台进入任务管理页面点击新增。4.1 填写任务信息配置项说明示例执行器选择注册上来的执行器xxl-job-executor-demo任务描述任务名称测试任务负责人任务负责人admin调度类型CRON / 固定速度CRONCron 表达式定时调度规则0/10 * * * * ?每10秒执行一次Cron 表达式常用示例0 0 0 * * ?每天0点触发0 30 10 * * ?每天10点30分触发0 0/5 * * * ?每5分钟触发0 0/10 * * * ?每10分钟触发4.2 配置执行参数配置项说明运行模式选择BEAN模式生产推荐JobHandler填写XxlJob注解中的名称如demoJobHandler任务参数执行时传入的参数代码中通过XxlJobHelper.getJobParam()获取路由策略见下文路由策略说明阻塞处理策略调度超时或任务执行过慢时的处理方式4.3 路由策略说明执行器集群部署时需要选择路由策略决定任务由哪个节点执行路由策略说明适用场景FIRST固定选择第一个执行器不推荐生产使用LAST固定选择最后一个执行器不推荐生产使用ROUND轮询选择在线执行器无状态任务负载均衡RANDOM随机选择在线执行器无状态任务CONSISTENT_HASH一致性 HASH同一任务固定同一台机器有状态任务需缓存本地数据FAILOVER故障转移按顺序心跳检测第一个成功的执行关键任务高可用BUSYOVER忙碌转移按顺序空闲检测第一个空闲的执行高负载场景SHARDING_BROADCAST分片广播所有执行器执行传递分片参数海量数据并行处理五、测试与查看日志5.1 手动触发任务在任务管理页面点击任务的操作列选择执行一次。在弹出的对话框可以填写执行参数也可以指定某台 IP 执行方便 Debug。5.2 查看执行日志执行完成后点击查看日志可以查看调度记录和任务执行日志。日志会显示调度时间、调度结果执行器地址、执行结果代码中通过XxlJobHelper.log()输出的业务日志六、生产环境检查清单检查项说明☐ AccessToken 已配置且非默认值生产必须修改☐ 调度中心与执行器 Token 一致否则注册失败☐ 数据库连接信息已修改使用生产数据库☐ 执行器端口非默认 9999避免冲突☐ 使用 BEAN 模式而非 GLUE 模式安全可控☐ 路由策略已按业务需求选择集群环境必须考虑☐ 阻塞处理策略已配置防止任务堆积参考资料官方文档https://www.xuxueli.com/xxl-job/源码地址https://github.com/xuxueli/xxl-job国内镜像https://gitee.com/xuxueli0323/xxl-job发布日期2026-08-10

相关新闻

抖音下载器完全指南:如何免费批量下载抖音视频、直播回放和作者主页

抖音下载器完全指南:如何免费批量下载抖音视频、直播回放和作者主页

抖音下载器完全指南:如何免费批量下载抖音视频、直播回放和作者主页 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…

2026/10/5 15:27:56 阅读更多 →
3分钟解锁专业缠论分析:ChanlunX缠论插件终极免费指南

3分钟解锁专业缠论分析:ChanlunX缠论插件终极免费指南

3分钟解锁专业缠论分析:ChanlunX缠论插件终极免费指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你想在通达信中实现专业的缠论技术分析吗?ChanlunX缠论插件正是你寻找的终极…

2026/10/3 3:53:41 阅读更多 →
5分钟掌握Window Resizer:让所有Windows窗口乖乖听话的终极方案

5分钟掌握Window Resizer:让所有Windows窗口乖乖听话的终极方案

5分钟掌握Window Resizer:让所有Windows窗口乖乖听话的终极方案 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否曾被那些"顽固不化"的应用程序窗口困扰…

2026/10/4 18:58:40 阅读更多 →

最新新闻

小米手机传文件到电脑的四种高效方案与选型指南

小米手机传文件到电脑的四种高效方案与选型指南

你有没有过这种经历:手机里躺着一份刚收到的文件,电脑就在旁边,但你在心里把能用的传输方式翻了个遍,愣是找不到一条顺手的路?这种事我过去经常碰到,尤其手上这台主力机恰好是小米手机的时候。后来我把常用…

2026/10/12 5:45:23 阅读更多 →
Codex重连卡顿根源:一行配置修复协议协同失配

Codex重连卡顿根源:一行配置修复协议协同失配

1. 项目概述:这不是网络故障,是连接策略失配“Codex 重连卡半天,一行配置搞定”——看到这个标题,我第一反应不是去查日志,而是先翻出自己去年在某跨平台开发项目里踩过的坑。当时团队用 Codex 做代码补全服务集成&…

2026/10/12 5:45:22 阅读更多 →
从GitHub日榜看开源趋势:Star增量背后的项目筛选与避坑指南

从GitHub日榜看开源趋势:Star增量背后的项目筛选与避坑指南

每天扫一眼GitHub热榜的日榜,已经是我这几年雷打不动的习惯。2026-10-05这一天的日榜样本被我完整扒了一遍,这篇文章就把我从拿到一份日榜开始,到最终筛选出值得深挖的项目、避开常见坑位的完整思路写出来。无论你是刚接触开源的新手&#xf…

2026/10/12 5:45:22 阅读更多 →
AI 数字人柜模块化可维护硬件设计指南

AI 数字人柜模块化可维护硬件设计指南

在部署数字人终端的项目中,很多团队往往只关注前期的功能实现和采购成本,却容易忽视后期运维的复杂性。一旦设备出现故障,传统的一体封装设计往往意味着漫长的返厂周期、高昂的差旅费用以及业务中断带来的隐性损失。对于连锁门店或偏远地区的…

2026/10/12 5:45:22 阅读更多 →
AnyPS5串流方案全解析:从架构设计到延迟优化实战

AnyPS5串流方案全解析:从架构设计到延迟优化实战

1. 项目缘起与核心定位AnyPS5 这个标题第一次出现在我视野里的时候,我下意识地把它拆成了两个部分来看——“Any”和“PS5”。前者代表通用、跨平台、不受限,后者则指向一个非常具体的软硬件生态。把这两个词拼在一起,背后想表达的东西其实很…

2026/10/12 5:45:22 阅读更多 →
代码级对抗攻击:AST扰动如何绕过SAST与CI门禁

代码级对抗攻击:AST扰动如何绕过SAST与CI门禁

1. 这不是“黑客炫技”,而是代码层攻防的日常切片“Code-Level Adversarial Attacks 相关工作”——看到这个标题,很多人第一反应是:又一个AI安全论文里的抽象概念?其实不然。它背后是一群人在真实代码世界里反复拆解、注入、绕过…

2026/10/12 5:44:22 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →