簡體   English   中英

Quartz Scheduler集群時間同步

[英]Quartz Scheduler Cluster Time Sync

我瀏覽了Quartz文檔,但似乎找不到以下問題的明確答案:如果我在集群環境中使用Quartz Scheduler,但計算機不同步(我們將使用JobStoreTX),會發生什么? 石英會解雇多個工作嗎? 它只會通過鎖定數據庫行條目來觸發一個嗎?

不幸的是,我認為它沒有記錄在案,但是我相信結果並沒有那么破壞性和錯誤。

集群中的每個Quartz調度程序實例每隔幾秒鍾輪詢一次數據庫,以嘗試查找要觸發的新作業(我認為默認情況下,它將搜索下一個計划的時間, now - 30秒和now + 60秒之間的所有作業-但這無關緊要,並且取決於在配置上)。 顯然,此操作在整個群集中都是安全的,因為很可能多個實例同時輪詢新作業。

如果服務器時間在整個群集中不同步,則假設其中一台服務器將來有時鍾。 該服務器認為它晚於實際時間,因此它太早獲取或啟動作業-至少比所有其他作業早。 這意味着一台服務器將運行更多(甚至不是全部)作業,從而從集群的其余部分竊取工作。 本身並不安全,但是會導致群集負載不對稱。

我正在考慮提出一個問題,建議在所有服務器中使用數據庫時間來避免這些問題。 但是, 的普及以及使用外部時間源的復雜性使其成為一個壞主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM