抖音春节活动
怎么设计最终开奖环节:自动化、定时执行、海量数据、高效稳定——分布式定时任务
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单机定时任务
分布式定时任务可以支撑更大的业务体量
分布式定时任务的性能、伸缩性、稳定性更高