2011-07-18 147 views
7

我被卡在Quartz.NET cron觸發器中。 我能夠除了下面的場景之外,還能夠讓我的所有場景變得有趣。於週一,週二,週三Quartz.Net - 每週3周,週一,週二,週三

  • 每x周...

我成功地做到這

0 31 15 ? * MON#2 *

觸發第二個星期一。

它可以與0 31 15 ? * MON#2,TUE#2,WED#2 *一起使用嗎?

我試過在http://www.cronmaker.com上測試它但是它只顯示我星期一即將到來的日期。我的唯一要求是保持簡單 - 即。不超過一個觸發器。

+5

+1 for http://www.cronmaker.com! – danyolgiax

+0

可能重複的[Quartz.NET,Recur每x周](http://stackoverflow.com/questions/4866100/quartz-net-recur-every-x-weeks) –

回答

4

我同意Brabster。
我不認爲這是可能的一個Cron表達式。

Quartz.net 2.0有一種新的觸發器,稱爲CalendarIntervalTrigger它可以用來管理不同的間隔單位。 您可以閱讀更多here

UPDATE

這裏的鏈接到quartz.net 2.0 repository

+0

我保留聽說關於Quartz.net 2.0,但我無法找到任何源代碼一些關於它的更多信息。我也聽到了一些不好的事情(如不穩定等)。 – Luke

+0

@Luke:我已經更新了我的答案。您可以在GitHub上找到quartz.net的鏈接。我可能會提到它在SO上幾次不穩定。我知道Marko Lahma - 背後的人 - 最近在這個項目上做了很多工作,並解決了我所有的問題。 – LeftyX

+0

我決定給v2一個去。所以我目前正在檢查它是否符合我的所有標準。但是,我看不出如何使用CalendarItervalTrigger觸發每週3周,週三,週五。 – Luke

4

我已經使用了Java Quartz實現,假設它們是相似的,那麼我不認爲有可能將您需要的內容表示爲單個CronTrigger。

在Java中,我們有DateIntervalTrigger,但我不認爲這可以滿足您在單個觸發器中的需求。不幸的是,由於觸發器不能在API本身中組成,我想觸發器的複雜性可以用單個觸發器來表示,這是有限的。

+0

其實它來自同一團隊 – Jorge

1

一個可能的解決方案是每週都會觸發一個觸發器,並附上一份工作計算X週數是否已過並開始主要工作。

這可能違揹你的「保持簡單」的要求,但它會起作用。我必須實現類似的功能來確保特定的Job實例被觸發,而不是一個全新的實例。

您可能想看看this question,因爲它的要求幾乎相同。