1
我們的應用程序部署到負載均衡和冗餘2的Web服務器。我們有幾個Quartz工作每天運行一次。作業只需要在其中一個Web服務器上執行,而不是兩者都執行。最終,我們可能將這些作業的作業服務器,但現在,有沒有通過配置或環境變量或東西的方式,我可以這樣做的工作只是我的一臺服務器上運行?禁用石英工作(S)爲特定的服務器
我們的應用程序部署到負載均衡和冗餘2的Web服務器。我們有幾個Quartz工作每天運行一次。作業只需要在其中一個Web服務器上執行,而不是兩者都執行。最終,我們可能將這些作業的作業服務器,但現在,有沒有通過配置或環境變量或東西的方式,我可以這樣做的工作只是我的一臺服務器上運行?禁用石英工作(S)爲特定的服務器
在QuartzConfig.groovy
您可以啓用或禁用插件的石英爲特定的環境。
environments {
runQuartz {
autoStartup = true
}
dontRunQuartz {
autoStartup = false
}
}
這樣一個方法是在你的Tomcat啓動參數使用-Dgrails.env=runQuartz
和-Dgrails.env=dontRunQuartz
。
一個可怕的黑客將有你的Quartz作業試圖鎖定一個共享的數據庫表 - 即獲得鎖纔可以執行作業,否則,中止。
我認爲第三種辦法是使用JDBC工作專賣店,雖然我有使用沒有經驗。在Quartz plugin docs簡短提及。
那些看起來像一些有效的選項。尤其是作業商店,我在文檔中掩蓋了這一點。當我找到工作時我會在這裏更新。 – Gregg
@Gregg曾經有過什麼工作? :-) – doelleri