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

100 阅读1分钟

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

抖音春节活动

春节集卡 image.png

用户规模-亿级

资金规模-亿级

读写QPS-百万级

希望:自动化 + 定时执行 + 海量数据 + 高效稳定 = 分布式定时任务

发展历程

  1. Windows批处理

  2. Windows任务计划程序

image.png

  1. Linux命令-CronJob 是Linux的系统命令,只能单机控制,无法适用于其他操作系统

  2. 单击定时任务-Timer、Ticker (单机)

  3. 单击定时任务-ScheduledExecutorService (单机)

  4. 任务调度-Quartz

  5. 分布式定时任务

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

    • 单机任务
    • 广播任务
    • Map任务
    • MapReduce任务

业内定时任务框架

image.png

实现原理

image.png

用户 - 任务基础信息+触发规则+任务代码 - 控制台+任务DB - 触发器+调度器+执行器

触发器

给定一系列任务,解析它们的触发规则,在规定的时间点触发任务的调度

支持大量任务 + 支持秒级的调度 + 周期任务多次执行 + 高性能

方案 定期扫描+延时消息

时间轮(Quartz):环形队列


😢 😢 😢

有点听不懂了,后面的之后再写


参考资料

抖音春节活动 & 定时任务发展之路 - 掘金 (juejin.cn)

【后端专场 学习资料五】第五届字节跳动青训营 - 掘金 (juejin.cn)