Кварцевое выражение CronTrigger между двумя датами - PullRequest
2 голосов
/ 05 сентября 2011

Есть ли способ написать выражение Quartz CronTrigger, которое запускается каждый день между двумя датами, например, начинается в 11 утра 5 сентября 2011 года и заканчивается в 11 утра 10 июня 2012 года?

Ответы [ 3 ]

2 голосов
/ 05 сентября 2011

Используйте выражение, которое означает каждый день в 11:00, например, «0 0 11 * *?».

Затем установите startTime триггера на 5 сентября 2011 г. в 10:59 и установитеendTime триггера до 10 июня 2012 г. 11:01.

0 голосов
/ 16 марта 2013

Одно выражение cron не облегчает запуск разных расписаний для одного и того же типа периода, независимо от того, какой период имеет значение, отличающееся расписание - период года. Однако, кроме вашей разницы в годах, все другие периоды имеют тот же график. Итак ... используя эти выражения cron:

cron1 = "0 0 23 5/1 SEP-DEC? 2012"
cron2 = "0 0 23 1/1 ЯНВ-ИЮНЬ? 2013"

Вы можете переключить планировщик с использования cron1 на cron2 где-то после 11: 00.00 31.12.2012, но до 10: 59.99 PM 01.01.2013, хотя я бы не стал сокращать его так близко, как показано здесь. Если ваш планировщик читает свое выражение cron из базы данных или конфигурации где-то, просто читайте его по новому расписанию каждый день в 23:30. Если вы храните свои выражения cron в базе данных, вы можете запланировать, чтобы планировщик заменил выражение cron для вашей конкретной задачи, используя этот chron3 ниже:

cron3 = "0 0 0 1 ЯНВ? 2013"

Глупый я: o) Сегодняшняя дата - 13 марта 2013 г., поэтому я уверен, что этот ответ немного запоздал для вас!

0 голосов
/ 12 сентября 2011

Другое решение, которое я нашел, - это указать политику маршрута (SimpleScheduledRoutePolicy) для запланированного маршрута и установить RouteStartDate и setRouteStopDate для этого объекта политики.

...