1
我有幾個石英(2.2)作業正在運行。比方說,一個人跑5秒鐘,另一個人每10分鐘跑一次。石英作業重疊
我不希望2個工作同時執行。我已經看到了這個
DisallowConcurrentExecution
,但這隻適用於工作從相同的實例,但我一般不希望(任何情況下)兩份工作重疊。
編輯: 所有與一個數據庫一起工作的作業,所以這就是爲什麼重要的是他們不能同時運行。每項工作都有不同的事情要做。
我有幾個石英(2.2)作業正在運行。比方說,一個人跑5秒鐘,另一個人每10分鐘跑一次。石英作業重疊
我不希望2個工作同時執行。我已經看到了這個
DisallowConcurrentExecution
,但這隻適用於工作從相同的實例,但我一般不希望(任何情況下)兩份工作重疊。
編輯: 所有與一個數據庫一起工作的作業,所以這就是爲什麼重要的是他們不能同時運行。每項工作都有不同的事情要做。
最簡單的方法是將底層線程池配置爲使用一個線程,這將實現您的目標。下面的屬性添加到您的quartz.properties配置文件:
org.quartz.threadPool.threadCount
可供作業 併發執行的線程數。您可以指定任何正整數,即 ,但只有1到100之間的數字是實用的。如果你只有 有一些工作,每天發幾次,那麼一個線程是 很多。如果你有數以萬計的工作,並且每分鐘都有很多人開始工作,那麼你希望線程數更像50或100(這個高度取決於工作執行的工作性質和你的系統資源)。
一臺服務器上有兩個實例?集羣?多少個調度程序實例(羣集中應該只有1個)?我們缺少很多信息,如果沒有這些信息,這個問題很難解決。 –
嗯,我對石英很新,對不起。 Quartz在一臺服務器上的Java App中運行。沒有任何說明。 每個作業都有它自己的觸發器,因爲作業有不同的時間應該運行(如每5秒鐘,每小時等等)(請參閱我的編輯) – Christian
那麼,爲什麼你需要運行兩個實例? –