Quartz Trigger狀態轉換

在Quartz的框架中,Trigger可能是最重要的一個對象了。定時任務的調度,觸發,都是通過對Trigger的操作來實現的。Quartz的所有表裏面,光Trigger相關的表就佔了一大半,從這一點也可以看出Trigger的重要地位。下面是2.21版本中的數據表:
在這裏插入圖片描述
Trigger按其類型不同,分作了SIMPLE、CRON、BLOB等類型,數據庫中也有相應的表存儲。除此之外,QRTZ_TRIGGERS和QRTZ_FIRED_TRIGGERS是兩張存儲Trigger調度狀態的表。對於狀態轉換的掌握,有助於我們 更好的理解Quartz的調度機制。

要通過文字講清Trigger狀態轉換很難,而一張好圖勝過千言萬語。下面是整理的Trgger狀態轉換圖,爲了更好的突出重點,避免增加複雜度,這裏僅描述了正常流程下的默認狀態轉換,忽略掉了集羣恢復(clusterRecover)和部分手動更改任務計劃(例如調用removeJob(),resumeJob()等)導致的狀態轉換。
在這裏插入圖片描述
建議讀者邊對照這張圖邊翻看源碼,可以達到事半功倍的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章