Quartz.Net - Каждые 3 недели в пн, вт, ср - PullRequest
7 голосов
/ 19 июля 2011

Я застрял с триггером cron Quartz.NET.Я смог реализовать все свои сценарии, кроме приведенного ниже.

  • Каждые X недель в понедельник, вторник, среду ...

Iудалось сделать это

0 31 15 ? * MON#2 *

, который срабатывает каждую секунду в понедельник.

Будет ли это работать с 0 31 15 ? * MON#2,TUE#2,WED#2 * ??

Я пытался протестировать егона http://www.cronmaker.com однако он показывал мне только понедельники как предстоящие даты.Мое единственное требование, чтобы это было просто - т.е.не более одного триггера.

Ответы [ 3 ]

4 голосов
/ 20 июля 2011

Я согласен с Брабстером.
Я не думаю, что это возможно с помощью выражения Cron.

В Quartz.net 2.0 есть новый тип триггера под названием CalendarIntervalTrigger , который можетиспользоваться для управления различными интервалами.Вы можете прочитать больше здесь .

ОБНОВЛЕНИЕ :

Вот ссылка на хранилище quartz.net 2.0 .

4 голосов
/ 19 июля 2011

Я использовал реализацию Java Quartz, предполагая, что они похожи, тогда я не думаю, что можно выразить то, что вам нужно, как один CronTrigger.

В Java у нас есть DateIntervalTrigger , но я не думаю, что это может сделать то, что вам нужно, в одном триггере. К сожалению, поскольку триггеры не могут быть скомпонованы в самом API, я предполагаю, что существуют ограничения в отношении сложности триггеров, которые можно выразить как один триггер.

1 голос
/ 21 июля 2011

Одним из возможных решений было бы включение триггера, который срабатывал каждую неделю, для задания, которое выясняет, прошло ли X количество недель и запускает основное задание.

Это может пойти вразрез с вашим требованием "будь проще", но оно будет функциональным. Мне пришлось реализовать нечто подобное, чтобы убедиться, что запускаются конкретные экземпляры Job, а не новый экземпляр.

Возможно, вы захотите взглянуть на этот вопрос , поскольку он задает почти то же самое.

...