news 2026/4/3 4:53:37

XXL-Job 实现分布式任务调度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
XXL-Job 实现分布式任务调度

XXL-Job的概念

XXL-Job 是一个分布式任务调度平台,由大众点评员工徐雪里(XXL)开源。它具有轻量级、易集成、易扩展等特点,基于 Java 语言开发,提供了 Web 界面进行任务的管理和调度,支持多种任务调度方式,可帮助开发者快速实现任务的分布式调度。

XXL-Job 的用处

  1. 分布式任务调度:在分布式系统中,经常需要在不同的节点上执行定时任务。XXL-Job 可以将任务分发到多个节点上执行,提高系统的处理能力和可靠性。
  2. 任务管理可视化:提供了直观的 Web 管理界面,方便开发者对任务进行管理,如任务的新增、修改、删除、暂停、启动等操作,还能查看任务的执行日志和执行状态。
  3. 丰富的调度策略:支持 CRON 表达式、固定间隔、固定延迟等多种调度方式,可以满足不同场景下的任务调度需求。
  4. 任务失败重试:当任务执行失败时,XXL-Job 支持设置重试次数和重试间隔,提高任务执行的成功率。
  5. 故障转移:如果某个执行器节点出现故障,XXL-Job 可以自动将任务转移到其他可用的节点上执行,保证任务的正常运行。

XXL-Job 的使用步骤

1. 环境准备
  • JDK 1.8+
  • MySQL 5.7+
  • Maven
2. 部署调度中心
  1. 下载源码:从 XXL-Job 的 GitHub 仓库(https://github.com/xuxueli/xxl-job )下载源码。
  2. 创建数据库:执行xxl-job/doc/db/tables_xxl_job.sql脚本,在 MySQL 中创建 XXL-Job 所需的数据库和表。
  3. 配置调度中心:修改xxl-job-admin/src/main/resources/application.properties文件,配置数据库连接信息:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root
  1. 启动调度中心:运行xxl-job-admin模块的XxlJobAdminApplication类,启动调度中心。访问http://localhost:8080/xxl-job-admin,使用默认账号admin和密码123456登录。
3. 创建执行器项目
  1. 创建 Maven 项目:在项目的pom.xml中添加 XXL-Job 依赖:
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.1</version> </dependency>
  1. 配置执行器:在application.properties中配置执行器信息:
### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin ### 执行器通讯TOKEN [选填]:非空时启用; xxl.job.accessToken= ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册 xxl.job.executor.appname=xxl-job-executor-sample ### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。 xxl.job.executor.address= ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务"; xxl.job.executor.ip= ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口; xxl.job.executor.port=9999 ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径; xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler ### 执行器日志保存天数 [选填] :值大于3时生效,启用执行器日志定期清理功能,否则不生效; xxl.job.executor.logretentiondays=30
  1. 创建任务处理器:创建一个类,实现IJobHandler接口,并使用@JobHandler注解标记:
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @Component public class SampleXxlJob { @XxlJob("demoJobHandler") public void demoJobHandler() throws Exception { XxlJobHelper.log("XXL-Job 任务开始执行"); // 任务逻辑代码 XxlJobHelper.log("XXL-Job 任务执行结束"); } }
  1. 启动执行器:运行执行器项目的启动类,执行器会自动向调度中心注册。
4. 在调度中心配置任务
  1. 登录调度中心:访问http://localhost:8080/xxl-job-admin,登录调度中心。
  2. 新增执行器:在“执行器管理”页面,点击“新增”按钮,添加执行器信息,AppName 要与执行器项目配置的xxl.job.executor.appname一致。
  3. 新增任务:在“任务管理”页面,点击“新增”按钮,配置任务信息,包括任务描述、调度类型、执行器、任务处理器等。
  4. 启动任务:配置完成后,点击任务列表中的“启动”按钮,任务将按照设定的调度策略开始执行。

通过以上步骤,你就可以使用 XXL-Job 实现分布式任务调度了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 0:38:44

当AI成为科研合伙人:虎贲等考如何重塑学术写作的“知识基因”

深夜的实验室&#xff0c;屏幕微光映着一张疲惫的脸。桌面上散落着十几篇文献&#xff0c;论文的“引言”部分已经重写了七次&#xff0c;却依然找不到那个精准的学术表达。这是全球科研工作者再熟悉不过的日常——直到“学术写作”本身&#xff0c;开始被重新定义。欢迎来到虎…

作者头像 李华
网站建设 2026/3/28 8:10:31

WampServer 3.1.7集成环境:Windows开发者的终极指南

WampServer 3.1.7集成环境&#xff1a;Windows开发者的终极指南 【免费下载链接】WampServer3.1.7集成环境下载 WampServer 3.1.7是一款专为Windows设计的集成环境软件包&#xff0c;集成了Apache Web服务器、PHP解释器和MySQL数据库&#xff0c;为开发者提供便捷的本地开发环境…

作者头像 李华
网站建设 2026/3/22 4:45:41

LiteGraph.js可视化节点引擎:5分钟从零到精通的完整指南

想要快速构建专业的可视化节点界面吗&#xff1f;LiteGraph.js正是你需要的强大工具&#xff01;这个基于JavaScript的图形节点引擎和编辑器&#xff0c;让你能够像使用现代可视化引擎一样轻松创建复杂的数据流程。无论你是前端开发者还是数据可视化工程师&#xff0c;这个工具…

作者头像 李华
网站建设 2026/3/31 3:00:31

FaceFusion人脸识别精度达99.2%,测试数据首次公开

FaceFusion人脸识别精度达99.2%&#xff0c;测试数据首次公开 在数字内容创作与AI视觉技术飞速发展的今天&#xff0c;一个看似“娱乐向”的功能——换脸&#xff0c;正悄然演变为高门槛、高可靠性的专业级工具。曾经因DeepFakes引发伦理争议的AI人脸替换&#xff0c;如今已不…

作者头像 李华
网站建设 2026/4/1 20:18:08

HunyuanVideo-Foley安装教程:npm安装与依赖配置全记录

HunyuanVideo-Foley安装教程&#xff1a;npm安装与依赖配置全记录在如今内容创作爆发式增长的时代&#xff0c;无论是短视频平台上的创意剪辑&#xff0c;还是游戏动画中的细节打磨&#xff0c;音效的精准匹配都成了提升沉浸感的关键。然而&#xff0c;传统拟音&#xff08;Fol…

作者头像 李华
网站建设 2026/3/27 7:17:41

5分钟打造专业作品集:Simplefolio极简模板完全指南

5分钟打造专业作品集&#xff1a;Simplefolio极简模板完全指南 【免费下载链接】simplefolio ⚡️ A minimal portfolio template for Developers 项目地址: https://gitcode.com/gh_mirrors/si/simplefolio 想要快速创建一个专业级别的个人作品集网站吗&#xff1f;Sim…

作者头像 李华