了解分布式定时任务|青训营笔记

105 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第15天

1. 发展历程

windows批处理 windows任务计划程序 Linux命令-CronJob 单机定时任务-Timer、Ticker 单机定时任务-ScheduledExecutorService 任务调度-Quartz

分布式定时任务

  • 平台化管理
  • 分布式部署,突破单机性能瓶颈
  • 支持海量数据 Pasted image 20230227201113.png 分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式,可以分为定时任务、延时任务、周期任务。 特点
  • 自动化:全自动完成定时任务的调度和执行
  • 平台化:基于平台化的思维管控一系列的分布式定时任务
  • 分布式:在分布式系统环境下运行任务调度,土坡单机定时任务的性能瓶颈
  • 伸缩性:采用集群方式部署,可以随时按需扩缩容
  • 高可用:单点故障不影响最终任务结果,可以做到故障转移

常见的分布式定时任务框架:Xxl-job、SchedulerX、TCT

2. 实现原理

核心架构

分布式定时任务核心要解决触发、调度、执行三个关键问题

  • 触发器:Trigger,解析任务,生成出发事件
  • 调度器:Scheduler, 分配任务,管理任务生命周期
  • 执行器:Executor, 获取执行任务单元,执行任务逻辑
  • 控制台:Admin, 提供任务管理和干预功能

触发器

核心职责:给定一些列任务,解析他们的出发规则,在规定的时间点触发任务的调度 设计约束

  • 需支持大量任务
  • 需支持秒级调度
  • 周期任务需要多次执行
  • 需保证秒级扫描的高性能,并避免资源浪费

3. 业务应用

所有需要定时、延时、周期性执行任务的业务场景,都可以使用分布式定时任务

电商

  • 订单30分钟未付款自动关闭订单
  • 定时给商家、达人发送消息,给用户发放优惠券

互动

  • 支付宝集五福、集卡分红包

游戏

  • 活动结束后批量补发用户未领取的奖励
  • 定期更新游戏内榜单