2016-06-06 5 views
1

Я использую Cron выражений с Quartz.NET, и возникают проблемы генерации выражение хрон для начала Hour:Minute и End Hour:MinuteКрон Выражение час: минута в час: минута

Если у меня есть работа, которую я хочу курсируют каждые 5 минут от 10:20 AM до 11:25 AM, что должно быть правильное выражение хрон,

на данный момент у меня есть это: 0 20-25/5 10-11 1/1 * ? *

Но это работает только на 10:20, 10:25, 11:20 and 11:25

1 Monday, June 6, 2016 11:20 AM 
2 Monday, June 6, 2016 11:25 AM 
3 Tuesday, June 7, 2016 10:20 AM 
4 Tuesday, June 7, 2016 10:25 AM 
5 Tuesday, June 7, 2016 11:20 AM 
6 Tuesday, June 7, 2016 11:25 AM 
7 Wednesday, June 8, 2016 10:20 AM 
8 Wednesday, June 8, 2016 10:25 AM 
9 Wednesday, June 8, 2016 11:20 AM 
10 Wednesday, June 8, 2016 11:25 AM 

Но что он должен сделать, это запустить из 10:20 AM till 11:25 AM, каждые пять минут

10:20, 10:25, 10:30, 10:35, 10:40 ....... 11:20, 11:25 

ответ

1

Кварц делает именно то выражение, которое вы Крон говорит, то есть каждые 5 минут между минутами 20 и 25 включены в течение нескольких часов 10 и 11 . И нет никакого способа добиться этого только одним выражением Cron ...

Обычно это делается с помощью триггера с ежедневным расписанием интервалов времени (TriggerBuilder.Create().WithDailyTimeIntervalSchedule(...)) с 10:20 в качестве ежедневного времени начала, 11:25 как ежедневно времени окончания и с интервалом в 5 минут.

Если триггер должен был быть уволен только по минутам 0 или 5, а также добавить к пусковому политику инструкции осечки, чтобы избежать временного сдвига в случае восстановления (см https://dzone.com/articles/quartz-scheduler-misfire)

+0

так что это не возможно сделать с выражение Cron? –

+0

Насколько я знаю, вы не можете использовать одно выражение cron, но вы можете использовать два (что довольно корявый IMO, но если вы действительно хотите тоже ... ^^). С двумя выражениями cron определите первое, подобное '0 20/5 10 1/1 *? * 'и второй такой, как этот' 0 0-25/5 11 1/1 *? * ' – Kraiss

+0

, чтобы в основном было создано 2 триггера для задания, которое должно быть выполнено, да? –