2010-08-09 51 views
18

我正在使用Quartz Scheduler使用Spring。我想配置與下列時間表相同:石英克倫表達式:運行作業每10分鐘立即開始(立即)

運行作業每10分鐘從現在開始,

我使用下面的表達式相同。

0 */10 * * * ? 

我以爲*在分鐘字段會使它運行第一分鐘,但它不這樣做。它從現在起運行第10分鐘,然後每10分鐘運行一次。 任何人都可以請建議我這種行爲的原因和我的問題的解決方案嗎?

回答

9

查看你現在的分鐘數,並將它們作爲列表添加到你的crontrigger中。如果你開始以分鐘12觸發例如添加

0 2,12,22,32,42,52 * * * ? 

爲您的cron表達式

編輯:

另一個解決方案是定義每十分鐘重複一個simpletrigger

SimpleTrigger trigger = new SimpleTrigger("myTrigger", 
              null, 
              new Date(), 
              null, 
              SimpleTrigger.REPEAT_INDEFINITELY, 
              10L * 60L * 1000L); 
+0

謝謝,這將工作,但那不是很聰明,不是嗎。我正在開發巨大的應用程序,onstartup需要啓動CronJob。 我不想在每次我要開始我的應用程序時更改cron表達式。我們有一些更改解決方案嗎? – 2010-08-09 10:17:11

+1

我擔心更聰明的版本不能通過彈簧來配置。 – 2010-08-15 13:31:23

+0

你可以在你的方法之前添加@PostContruct,所以在你的bean被初始化後,它會第一次運行。 – hiway 2014-03-10 03:31:25

0

您可以使用類似

0 1-59/10 * * * ? 

這將在任何一分鐘和10分鐘後觸發任務。我沒有嘗試,但它看起來不錯。 :)

12
0 0/10 * 1/1 * ? * 

請參閱:從您所創建的cron作業的時刻http://www.cronmaker.com/

+0

嘿,我偶然標記了這個答案。我認爲這很好。石英中的 – ScottJShea 2014-09-18 16:50:36

-2
*/10 * * * * 

每10分鐘開始,無論您喜歡(用戶的crontab,/etc/cron.d/,...)。

+2

,克朗可以每秒運行一次。您的解決方案將在石英cron調度語法中每10秒運行一次。當我有一份我每分鐘都在測試的工作時,這讓我感到沮喪,因此我使用了gnu的cron語法(如上所述),並且實際上它每分鐘都會運行一次。 ughhhh .....談談併發測試... – 2016-10-12 21:02:12