你好我在石英工作時已經實現了一些東西。一個cron設置爲每2min醒來時用表達式0 0/2 * * *
? 。石英工作調教
當你在13:10:30運行項目時,第一個動作發生在13:12:00和第二個13:14:00,其餘的每2分鐘0秒。顯然,在項目啓動和首次發生行動之間,只有1毫秒:30秒。
無論項目在什麼時間開始,有沒有辦法讓第一次出現尊重2分鐘?
你好我在石英工作時已經實現了一些東西。一個cron設置爲每2min醒來時用表達式0 0/2 * * *
? 。石英工作調教
當你在13:10:30運行項目時,第一個動作發生在13:12:00和第二個13:14:00,其餘的每2分鐘0秒。顯然,在項目啓動和首次發生行動之間,只有1毫秒:30秒。
無論項目在什麼時間開始,有沒有辦法讓第一次出現尊重2分鐘?
Cron作業在石英配置爲使用CronTrigger
類。另一種方法是使用SimpleTrigger
,您可以使用固定的延遲時間間隔來構建它。 SimpleTrigger
有各種構造函數,允許您指定開始時間,結束時間,重複次數,重複間隔等。如此說,我建議不要使用Quartz進行這種調度,並使用java.util.concurrent.Executors.newScheduledThreadPool()
。當談到簡單的重複任務時,它比Quartz容易得多。
石英可能使用cron進行調度,它基於日期和時間,而不是持續時間。這意味着您定義的cron表達式與機器上的當前時間直接相關,而不是應用程序啓動時的時間。
我不知道Quartz配置會幫助你解決你的問題。然而,一個解決方案是創建你自己的Thread
,其推出的應用程序的過程開始,基本上等待2分鐘調用方法之前:
while (running) {
Thread.sleep(1000 * 120);
doStuff();
}
你剛剛給我一個主意的人!謝謝,但我會多挖一點,以正確地做到這一點。 – 2009-11-06 10:54:27
石英不是基於cron的。它支持語法,但不需要它。 – skaffman 2009-11-06 11:04:05
編輯以反映這一點。 – romaintaz 2009-11-06 11:06:04