一文搞懂java中的定时任务框架-分布式(xxl-job)

本文主要介绍了xxl-job分布式任务调度平台,包括它的设计思想、与其他框架的对比、安装部署以及GLUE和BEAN模式的任务开发。xxl-job提供了简单易用的管理界面和丰富的任务失败策略,适用于不同规模的系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一文搞懂⭐java中的定时任务框架-分布式(xxl-job)

阅读收获

✔️1. 了解常用的分布式应用定时任务框架

✔️2. 掌握xxl-job定时任务框架搭建及使用

常用的分布式任务调度系统

  • xxl-job: 是大众点评员工徐雪里于2015年发布的分布式任务调度平台,是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
  • Quartz:Java事实上的定时任务标准。但Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能
  • TBSchedule:阿里早期开源的分布式任务调度系统。代码略陈旧,使用timer而非线程池执行任务调度。众所周知,timer在处理异常状况时是有缺陷的。而且TBSchedule作业类型较为单一,只能是获取/处理数据一种模式。还有就是文档缺失比较严重
  • elastic-job(E-Job):当当开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分布式协调,实现任务高可用以及分片,目前是版本2.15,并且可以支持云开发
  • Saturn:是唯品会自主研发的分布式的定时任务的调度平台,基于当当的elastic-job 版本1开发,并且可以很好的部署到docker容器上。

image.png

  • 共同点:
    • E-Job和X-job都有广泛的用户基础和完整的技术文档,都能满足定时任务的基本功能需求。
  • 不同点
    • X-Job 侧重的业务实现的简单和管理的方便,学习成本简单,失败策略和路由策略丰富。推荐使用在“用户基数相对少,服务器数量在一定范围内”的情景下使用
    • E-Job 关注的是数据,增加了弹性扩容和数据分片的思路,以便于更大限度的利用分布式服务器的资源。但是学习成本相对高些,推荐在“数据量庞大,且部署服务器数量较多”时使用

xxl-job

设计思想:

  • 将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。
  • 将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。
  • 因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
  • 本文使用版本为2.3.0

1.下载源码

image.png

2. 初始化数据库

  • 执行tables_xxl_job.sql文件初始化
  • 调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
  • 如果mysql做主从,调度中心集群节点务必强制走主库;
    • xxl_job_lock:任务调度锁表;
    • xxl_job_group:执行器信息表,维护任务执行器信息;
    • xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
    • xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
    • xxl_job_log_report:调度日志报表:用户存储XXL-JOB任务调度日志的报表,调度中心报表功能页面会用到;
    • xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
    • xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
    • xxl_job_user:系统用户表;

3. 配置部署调度中心

  • 调度中心项目:xxl-job-admin
  • 作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。

3.1 主要修改配置:

  • 修改数据源
  • 修改报警邮箱
  • 调度中心通讯TOKEN
### xxl-job, data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值