这是我参与「第五届青训营 」伴学笔记创作活动的第11天
分布式定时任务
简介
定时任务是指为了自动完成特定任务,实时、延迟、周期性完成任务调度的过程
分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式
定时任务、延迟任务、周期任务
执行方式: 单机任务:随机触发一个机器执行任务、广播任务:广播到所有机器上执行同一个任务、Map任务:大任务拆解成每个子任务、MapReduce任务:大任务拆解成每个子任务最后再汇总计算
实现原理
触发器:解析任务,生成触发事件
调度器:分配任务、管理任务生命周期
执行器:获得执行任务单元,执行任务逻辑
此外还提供一个控制台admin,提供任务管理和干预的功能
数据流
控制台
任务元数据
任务实例
触发器
核心职责:给定一系列任务,解析他们的触发规则,在规定时间点触发任务的调度
设计上的约束:需要支持大量任务、支持秒级调度、周期任务需要多次执行、需要保证秒级扫描的高性能,避免资源浪费
方案1
每10秒扫描一下DB查询一下近10分钟哪些任务将要被执行,通过processor将其发送给延时MQ,然后改变DB中该任务的状态
方案2
高可用
调度器
资源来源
资源调度
任务分片
任务编排
故障转移