簡體   English   中英

石英cron表達式每5周(35天)執行一次

[英]Quartz cron expression to execute every 5weeks(35 days)

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

在這里鏈接

有人可以建議嗎?

對此沒有直接解決方案。

以下解決方案將為您提供幫助:

在cron以下的石英中創建作業,使* _JOB_DETAILS表job_data列數據為下一次觸發時間的毫秒數。

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

Quartz作業將在每個星期(星期一12:00 AM)調用Java應用程序。 在您的業務邏輯上,檢查job_data與當前時間。 如果超出執行邏輯,則什么也不做。 執行完邏輯后,用下面的時間更新JOB_DATA,然后下一個觸發時間將存儲在job_data中。

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

您會得到預期的結果。

寫這樣的表達式毫無意義(這是行不通的),請嘗試使用http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-05.html而不是cron表達式只是不適合這種工作。

正如Puchacz所指出的,cron表達式不適用於這些類型的計划。 您應該將CalendarIntervalTrigger與星期重復間隔單位一起使用,將5用作重復間隔。 就代碼而言,在Quartz中使用cron和日歷間隔觸發器幾乎沒有區別。

請參閱下面的CalendarIntervalTrigger時間表的示例,該時間表從2017年11月1日午夜開始觸發。通過更改開始時間,您可以調整每天要觸發工作的時間。

[示例CalendarIntervalTrigger

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM