这是我参与「第五届青训营 」伴学笔记创作活动的第 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分钟未付款自动关闭订单,定时给商家、达人发送消息,给用户发放优惠券,
互动:支付宝集五福,春节集卡瓜分红包
游戏:活动结束后批量补发用户未领取的奖励,定时更新游戏内榜单