Диапазон расписания Java EE6

Я должен иметь расписание, которое выполняется каждые 5 минут с 10:00 до 17:45, как мне это сделать с помощью аннотации @Schedule?

До сих пор я ограничивался @Schedule (час = 10-18; минута = */5), но они настаивают, что я должен иметь его до 17:45, а не до 6 вечера.

Ответ 1

Как четко указано в документации для @Schedule и @Schedules, вам нужно иметь две аннотации @Schedule, если вы запускаете два графика - даже если вам не нравится этот факт.

Из-за ограничений типа cron, имеющих диапазоны только внутри отдельных элементов (часы, минуты, секунды...), просто не представляется возможным предоставить дополнительную информацию о пропуске последних двух исполнений в *: 50 и *: 55 только в 5 вечера.

Тем не менее, вы, вероятно, получите что-то вроде

@Schedules({
   @Schedule(hour="10-16" minute="*/5"),
   @Schedule(hour="17" minute="0,5,10,15,20,25,30,35,40,45")
})

По мере того, как вы заканчиваете с информацией о расписании в исходном коде таким образом (даже если это в виде аннотации), вы могли бы так же работать каждые пять минут и сразу возвращаться из метода, если вызвали после 5:49 вечера