Quartz.Net - 周一,周二,周三每3周一次

时间:2011-07-18 22:28:32

标签: c# scheduling quartz.net

我坚持使用Quartz.NET cron触发器。 我能够将我的所有场景与下面的场景区分开来。

  • 周一,周二,周三每X周

我设法做到了这一点

0 31 15 ? * MON#2 *

每周一触发一次。

它适用于0 31 15 ? * MON#2,TUE#2,WED#2 * ??

我尝试在http://www.cronmaker.com上进行测试,但它只显示星期一作为即将到来的日期。 我唯一的要求是保持简单 - 即。不超过一个触发器。

3 个答案:

答案 0 :(得分:4)

我已经使用了Java Quartz实现,假设它们相似,那么我认为不可能将你需要的内容表达为单个CronTrigger。

在Java中,我们有DateIntervalTrigger,但我不认为这可以在单个触发器中执行所需的操作。不幸的是,由于触发器不能在API本身中组合,我想对于可以表示为单个触发器的触发器的复杂性会有限制。

答案 1 :(得分:4)

我同意Brabster 我不认为使用Cron Expression是可能的。

Quartz.net 2.0有一种名为 CalendarIntervalTrigger 的新型触发器,可用于管理不同的间隔单元。 您可以阅读更多here

<强>更新

这是quartz.net 2.0 repository的链接。

答案 2 :(得分:1)

一种可能的解决方案是,每周都会触发一个触发器,该触发器会附加一份工作,以确定是否已经过X周数并开始主要工作。

这可能违背了“保持简单”的要求,但它可以起作用。我必须实现类似的功能,以确保触发特定的Job实例而不是全新的实例。

您可能希望看this question,因为它几乎要求同样的事情。