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

60 阅读2分钟

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

分布式定时任务

引入

以各大互联网公司的春节瓜分红包活动为例,

  • 挑战:用户规模,资金规模,高QPS
  • 自动化+定时执行+海量数据+高效稳定
  • 分布式定时任务出现

发展历程

  • windows批处理

    • 10分钟后windows电脑自动关机
    case1:新建“自动关机.bat”文件
    case2:修改文件内容为“shutdown -s -t 600”,代表10分钟后关机
    case3:双击该批处理文件,电脑将在10分钟后关机
    
  • Linux命令--CronJob

    可实现定时任务执行

  • 任务调度-Quartz

分布式定时任务

  • 平台化管理,分布式部署,支持海量数据
  • 定时任务是指系统为了自动完成特点任务,实时,延时,周期性完成任务调度的过程。
  • 分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。
  • 分布式定时任务

    • 特点:自动化,平台化,分布式,伸缩性,高可用
    • 执行方式:单机任务,广播任务,Map任务,MapReduce任务
  • 常用的分布式定时任务框架:Xxl-job,SchedulerX,TCT,

实现原理

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

  • 触发器:Trigger,解析任务,生成触发事件
  • 调度器:Scheduler,分配任务,管理任务生命周期
  • 执行器: Executor,获取执行任务单元,执行任务逻辑
  • 除此之外,还需要提供一个控制台(Admin),提供任务管理和干预的功能。

任务创建 => 任务执行

业务应用

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

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

互动:支付宝集五福,春节集卡瓜分红包

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