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

86 阅读2分钟

抖音春节活动

怎么设计最终开奖环节:自动化、定时执行、海量数据、高效稳定——分布式定时任务

Windows批处理

Case1:10分钟后Windows电脑自动关机

Case2:每天12:00自动疫情打卡

Case3:每天02:30定时清理机器日志

在linux中可以使用CronJob脚本命令,使用简单,稳定可靠,但也存在问题:只能控制单台及其,且无法适用于其他操作系统

Case4:每隔5分钟定时刷新本地缓存数据

可以使用Timer Ticker,这是跨平台的命令,但也只能控制单机

单机定时任务:ScheduledExecutorService,拥有线程池功能,但也只能单机使用

任务调度:Quartz——单任务极致控制,但没有负载均衡机制

分布式定时任务

分布式定时任务特点:平台化管理、分布式部署、支持海量数据

定时任务:系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程

分布式定时任务:把发散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度以及分布式部署的一种定时任务管理方式

按触发时机分类:定时任务、延时任务、周期任务(固定周期事件)

分布式定时任务执行方式:单机任务、广播任务(广播到所有机器上执行同一个任务,比如所有机器一起清理日志)、Map任务(一个任务可以分出多个子任务,每个子任务负责一部分的计算,适用于计算量大、单机难以完成的任务)、MapReduce任务(在MAP任务的基础上,还可以对所有的子任务的结果做汇总计算)

春节集卡

主要分两阶段,第一阶段可以使用MapReduce任务,第二阶段可以使用Map任务

业内定时任务框架

Xxl-job 开源且免费 SchedulerX 广泛使用久经考验

分布式定时任务VS单机定时任务

分布式定时任务可以支撑更大的业务体量

分布式定时任务的性能、伸缩性、稳定性更高