2011-09-05 29 views
2

有沒有辦法編寫一個在兩個日期之間每天運行的Quartz CronTrigger表達式,例如從2011年9月5日上午11點開始,到2012年6月10日上午11點結束?在兩個日期之間的石英CronTrigger表達式

+1

http://stackoverflow.com/questions/704927/does-cron-expression-in-unix-linux-allow-specifying-exact-start-and-end-dates –

回答

1

使用表達式表示每天上午11點例如「0 0 11 * *?」。

然後將觸發器的startTime設置爲2011年9月5日10:59 am,並將觸發器的endTime設置爲2012年6月10日上午11:01。

0

我發現的另一個解決方案是爲預定路線指定路線策略(SimpleScheduledRoutePolicy),併爲此策略對象設置RouteStartDate和setRouteStopDate。

0

單個cron表達式並不便於爲同一期間類型運行不同的計劃,不管哪個時間段,您的不同計劃是年份期間。 但是,除了您的年差,其他所有時間段都有相同的時間表。因此,使用這些表達式的cron ...:

cron1 = 「?0 0 23 5/1 SEP-DEC 2012」
cron2 = 「?0 0 23 1/1 16月2013」​​

您可以切換調度程序在12/31/2012的晚上11點00分之後但在2013年1月1日10點59分之前的某個時候使用cron1到cron2,儘管我不會像這裏顯示的那樣將它切得太近。如果您的調度程序正在從數據庫或某個配置中讀取其cron表達式,則只需在每天晚上11:30以新的時間表讀取它。如果你在數據庫中存儲你的cron表達式,你可以安排一個調度程序使用下面的chron3替換你的特定任務的cron表達式:

cron3 =「0 0 0 1 JAN?2013」​​

傻傻的我:o)今天的日期是2013年3月13日,所以我相信這個答案對你來說有點遲了!