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」表達式配置的結束有效時間。

啓動一個定時器,當時間到達則中止任務調度。

相關文章
相關標籤/搜索