2011-07-18 105 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,因为它的要求几乎相同。