.

分散式任務排程

任務排程是指基於給定的時間點,給定的時間間隔或者給定執行次數自動的執行任務。任務排程涉及到多執行緒併發、執行時間規則定製及解析、執行緒池的維護等諸多方面的工作。

整體來看分散式任務排程,三個關鍵詞:分散式、任務排程、配置中心。

分散式:平臺是分散式部署的,各個節點之間可以無狀態和無限的水平擴充套件。

任務排程:涉及到任務狀態管理、任務排程請求的傳送與接收、具體任務的分配、任務的具體執行;這裡又會遇到要處理哪些任務、任務要分配到哪些機器上處理、任務分發的時候判斷哪些機器可以用等問題,所以又需要一個可以感知整個叢集執行狀態的配置中心。

配置中心:可以感知整個叢集的狀態、任務資訊的註冊。

整體設計

image.png

整個排程系統簡單理解就是:Scheduler(任務排程器)將Job/JobDetail(如何做)和Trigger(什麼時間做與不做)打包成一個排程item進行排程,對過程中的重要事件,開放Listener鉤子給業務用於實現事件處理,整個排程可以採用在記憶體裡面(RAMJobStore)還是持久化(JDBCJobStore)運作。

image.png相關文章