xxl-job 一致性問題

        xxl-job的調度中心爲高可用的集羣部署,那麼是如何保證調度的一致性,不會出現多個機器同時觸發一個任務,導致任務重複執行。調度中心通過DB鎖,保持集羣分佈式調度的一致性,一次任務只觸發一次。爲了避免多個調度器同時調度任務,通過數據庫的悲觀鎖(for update).

 可以參看  JobScheduleHelper類代碼

1 setAutoCommit(false)關閉隱式自動提交事務,

2 啓動事務select lock for update(顯式排他鎖) 

3 讀db任務信息 -> 拉任務到內存時間輪 -> 更新db任務信息

4 commit提交事務,同時會釋放for update的排他鎖(悲觀鎖)

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