仿xxl-job,消除调度中心单点的分布式定时任务调度平台
其中主要有两个重要部件
- 调度中心:负责调度任务,监控任务执行情况
- 执行器:负责接收指令,执行任务
在xxl-job中,调度中心负责调度任务,监控任务执行情况,而执行器负责执行任务。调度中心和执行器之间通过rpc进行通信,调度中心将任务发送给执行器执行,执行器执行完任务后将执行结果返回给调度中心。
实际的一条任务执行的流程如下:
- 从数据库中找出这段时间需要被执行的任务
- 将任务发送给对应的执行器
- 执行器执行任务
可以看到,在xxl-job中,调度中心需要执行1 2两个步骤,而执行器只需要执行任务即可。
因此,本着一个应用只执行一个功能的原则,将调度中心和执行器分开,消除执行器单点。
因此,my-job的基础部件主要有三个:
- 监控中心:负责调度任务,监控任务执行情况和执行器的健康情况
- 触发器:负责触发任务,将任务发送给执行器执行
- 执行器:负责执行任务
考虑对间隔时间长短不同的任务建不同的表,可行性待验证
- 初步考虑为两个快慢线程