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

115 阅读2分钟

这是我参与「第五届青训营」伴学笔记活动的第十天,今天初步了解了分布式定时任务的核心四个组件以及运行方式。

核心架构

触发器:解析任务

调度器:分配管理任务生命周期

执行器:获取任务单元执行任务逻辑

控制台:任务管理和干预

数据流:根据用户生成任务基础信息,判断是否触发条件,并通过任务代码发送到控制台,在控制台又将发送来的数据存储到任务数据库,同时又经过触发器判断何时触发,再进行调度发送到执行器完成任务的执行。

功能架构

1.控制台将任务的元数据存储下来,进行日志管理,任务管理,监控报警

2.触发器在用户发生行为时进行扫描和规则解析并进行消息投递

3.调度器用来限流,负载均衡吗故障转移。

4.执行器还要进行状态上报

控制台

任务:一个任务对应多个任务实例并生成不同结果,同时任务历史会记录用户修改信息

元数据:包括基本信息,何时调度,执行行为以及执行方式

任务实例:包括id标识,触发时间(何时触发),状态和运行结果以及过程信息,比如记录消息的id,要撤回对id进行追回。

触发器

作用:解析任务触发规则并在规定时间内触发任务调度。

约束:支持大量,快速,清晰,高性能节约资源。

定期扫描和延时消息:从DB扫描出规定时间内所要完成的任务,把信息发送到处理器并发出延时消息,同时为避免多次执行已经扫描的任务对其进行状态标记,最后进行调度

时间轮:由任务组成的环形队列,通过遍历任务队列找出当前时间点需要触发的任务。可以通过转换为最小堆找到即将触发的任务。同时我们可以将形成的最小堆首尾连接起来构成环形数组,类似于时钟,时钟指针指向某个任务就执行该任务,查询和插入复杂度都是常数。此外我们可以分为多级时间轮,当多个轮同时指向一个任务执行。