taobao-pamirs-schedule-2.0源码分析—核心流程

核心的流程时序图以下。


如上图所示,淘宝调度管理器在建立后就会执行一系列初始化过程,而且启动一些定时线程。具体流程描述以下: 服务器

1.建立定时调度器。 spa

2.从配置中心加载任务配置信息。 线程

3.建立一个本地的服务器信息。 orm

4.加载任务调度运行信息。(没有的话会自动建立)。主要是支持任务能够多环境运行,生产的运行信息中的任务类型是:原始任务类型:环境。 队列

5.注册服务器信息到注册中心。 配置

6.启动定时器。定时执行心跳任务。 循环


6.1心跳任务会刷新注册中心的PAMIRS_SCHEDULE_SERVER表的HEARTBEAT_TIME字段的值。 淘宝

6.2当有主机发生变化的时候从新给服务器分配队列。 定时器

6.3若调度暂停或者处理器睡眠则从新获取当前服务器队列。 im

6.5若发送心跳异常,则清空队列和处理器中的任务,避免心跳失败致使的重复任务执行。


7.启动新的线程。等待主机得到队列。直到得到队列为止,一直会循环等待。

8.若得到任务队列。则开始计算时间进入调度。

9.若开始时间配置空或者当即执行,则会当即会对调度器调度。

建立新的调度处理器开始处理队列中的任务。

10.不然计算下次符合“cron”表达式配置的开始有效时间。

启动一个定时器,当时间到达则恢复任务调度。

11.计算符合“cron”表达式配置的结束有效时间。

启动一个定时器,当时间到达则中止任务调度。

相关文章
相关标签/搜索