2017-10-11 657 views
0

我試圖弄清楚5周內執行一次的cron表達式,即從特定日期開始的35天。我找不到直接使用石英的解決方案。每5周(35天)執行一次Quartz cron表達式

LINK HERE

有人能指教?

+0

你是什麼意思「從一個特定的日子」?你能舉一些例子嗎? – LHCHIN

+0

你能查看這個\t 0 0 12 1/35 *? * 您可以使用http://www.cronmaker.com/ –

+0

生成您的cron,讓它從一個月的第一天起 – TomJava

回答

0

對此沒有直接的解決方案。

以下解決方案將幫助您:

創建石英下面的cron作業,使* _JOB_DETAILS表job_data列數據作爲一個火情時間毫秒。

It will run every week(You can make this every day also). 
0 0 12 ? * MON * 

石英作業將每週(星期一上午12:00)調用java應用程序。在您的業務邏輯檢查job_data與當前時間。如果超過了執行你的邏輯,否則什麼也不做。在執行完邏輯更新JOB_DATA之後,下一個觸發時間將存儲在job_data中。

Calendar c=new GregorianCalendar(); 
c.add(Calendar.DATE, 35); 
c.getTime();//add this data 

你會得到預期的結果。

+0

這將在每個月不是每35天。 – TomJava

0

正如Puchacz所指出的,cron表達式不適合這些類型的調度。您應該使用CalendarIntervalTrigger以星期重複間隔單位和5重複間隔。在代碼方面,在Quartz中使用cron和日曆間隔觸發器幾乎沒有區別。

請參閱以下有關CalendarIntervalTrigger的示例日程安排,該日程安排觸發器將於2017年11月1日午夜開始啓動。通過更改開始時間,您可以調整希望開展工作的時間。

[Sample CalendarIntervalTrigger

+0

你有一些基於該示例程序的鏈接? – TomJava

+0

爲什麼不使用Google並搜索CalendarIntervalTrigger示例或示例。第二個鏈接(https://www.programcreek.com/java-api-examples/index.php?api=org.quartz.CalendarIntervalTrigger)可用。 –

+0

謝謝!但是我無法涉及這段代碼的編寫方式。 – TomJava

相關問題