2016-03-24 45 views
1

我想在早上6點鐘和晚上6點鐘的時間內每2周運行一次石英工作。如何實現這一點。請教建議。每2周和每天2次(上午6點和下午6點)的石英克朗觸發器

我試着用下面的cron表達式

01 01 1 1-0/14 01 ? * 

安排,但接下來的火時間如下。

  1. 週日,2017年1月1日上午1:01
  2. 週日,2017年1月15日上午1:01
  3. 週日,2017年1月29日上午1:01
  4. 週一,一月1,2018上午1:01
  5. 週一,2018年1月15日上午1:01
+0

也許你可以解釋一下你希望下一次的火災時間是什麼,因爲我不確定我是否清楚地理解了這個問題。你希望它在相隔12小時的上午6點和下午6點發射,但是之後又不會再發生14天,然後又短期連續兩次? –

+0

更新了cron表達式01 01 6,18 1-0/14 01? *。下次火災時間如下所示1. \t 2017年1月1日星期日上午6點01分 2. \t 2017年1月1日星期日下午6點01分 3. \t 2017年1月15日星期日上午6點01分 4. \t週日,2017年1月15日下午6:01 5. \t週日,2017年1月29日6:01 6. \t週日,2017年1月29日下午6:01 週一,1月1日, 2018 6:01 AM 8. \t 2018年1月1日星期一下午6:01 9。\t 2018年1月15日星期一上午6:01 10. \t 2018年1月15日星期一下午6:01 –

+0

我想知道什麼是你希望表達產生的火時刻,以便我確信給你正確的修改表達。 –

回答

1

有一些種類的日期觸發器cron擅長。每N天往往不是其中之一。舉例來說,如果你使用的是這樣的:

0 0 6,18 */14 * ? 

你可能會得到這樣的事情:

  1. 週二,2016年3月29日上午6:00
  2. 週二,2016年3月29日6 :00 PM
  3. 週五,2016年4月1日上午6:00
  4. 週五年,2016年4月1日,下午6:00
  5. 週五,2016年4月15日,上午6:00
  6. 週五,2016年4月15日6:00 PM

正如你可以看到,29個,其次是1 - 不完全14天分開。

有一些東西可以讓你玩表達式並查看結果日期,這很有用。 CronMaker可以做到這一點,如果這是有幫助的。

但是,既然你說你正在使用Quartz,它支持其他類型的觸發器,如DateIntervalTrigger,可能更適合你正在尋找的?

+0

但我的問題是3月29日之後它在2天內解僱了工作。我的要求就像2016年3月29日星期二下午6:00 2016年4月12日星期五上午6:00 –

+1

啊,對。不幸的是,cron很擅長表達某種時間表,在其他時間表上表現不是很好。當你超過某個特定點時,你就會開始做一些事情,比如每天只調用一次腳本,並讓腳本決定是否應該調用它(每14天)。這並不好,但是cron不支持每個想要的時間表。 –

相關問題