我有一個構建石塊的工作,每天早上發送電子郵件。這項工作每天早上開了三次,而不是一次。我們有一個託管的Blackboard實例,我被告知運行在三臺虛擬服務器上。我猜這是造成這個問題的原因,因爲以前的構建塊在單個服務器安裝上工作正常。石英作業多次觸發
有沒有人有石英的經驗,或可以建議如何防止工作多次發射?
感謝,
我有一個構建石塊的工作,每天早上發送電子郵件。這項工作每天早上開了三次,而不是一次。我們有一個託管的Blackboard實例,我被告知運行在三臺虛擬服務器上。我猜這是造成這個問題的原因,因爲以前的構建塊在單個服務器安裝上工作正常。石英作業多次觸發
有沒有人有石英的經驗,或可以建議如何防止工作多次發射?
感謝,
你沒有詳細說明如何你的Quartz實例(S)被實例化,並開始,但要注意,如果你運行鍼對同一個作業存儲數據庫的多個實例石英會導致未定義行爲同時,除非啓用集羣(請參閱http://www.quartz-scheduler.org/docs/configuration/ConfigJDBCJobStoreClustering.html)。
我想我對此有點遲了,但我們的應用程序也有類似的情況。我們有4個服務器運行作業,其中一些可以同時在多個服務器上運行,有些應該只運行一次。正如Will的迴應所言,您可以查看Quartz的羣集功能。
我們的方法有點不同,因爲在我們切換到Quartz之前,我們有一個本土解決方案。我們的工作利用數據庫表來存儲cron觸發器和其他作業信息,然後「鎖定」作業條目,以便其他服務器不能執行它。這使得作業不會在服務器上多次運行,並且迄今爲止相當有效。
希望有所幫助。