Кварцевый триггер CRON не сработал, когда ожидалось
-
19-09-2019 - |
Вопрос
У меня есть простой кварцевый триггер, запущенный весной 2.5.6-SEC01.
Определение триггера выглядит следующим образом:
<bean id="AdvicesCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="AdvicesQuartzJob"/>
<property name="cronExpression" value="0 20/15 * * * ?"/>
</bean>
Это моя фабрика планировщиков:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="AdvicesCronTrigger"/>
</list>
</property>
</bean>
Я читал эта документация о запуске триггеров CRON из Quartz.Это отрывок:
Пример CronTrigger 1 - выражение для создания триггера, который просто срабатывает каждые 5 минут
"0 0/5 * * * ?"
Сегодня я запустил свою программу в 9:40.Это результат моего выполнения:
Редактировать: Бобби прав в своей оценке.Я обновил свой журнал выполнения:
2010-02-11 09:50:00,000 ИНФОРМАЦИЯ - СТАРТ
2010-02-11 10:20:00,000 ИНФОРМАЦИЯ - СТАРТ
2010-02-11 10:35:00,000 ИНФОРМАЦИЯ - НАЧАЛО
2010-02-11 10:50:00,000 ИНФОРМАЦИЯ - НАЧАЛО
2010-02-11 11:20:00,000 ИНФОРМАЦИЯ - СТАРТ
2010-02-11 11:35:00,000 ИНФОРМАЦИЯ - НАЧАЛО
Я ожидал, что этот спусковой крючок будет запущен в
9:50
10:05
10:20
10:35
...
Как этого добиться?Какое выражение CRON использовать?
Решение
В 20/15
часть выражения cron означает каждые 15 минут после 20-й минуты часа.Это означает, что он всегда будет начинаться на 20-й минуте.
Я никогда не тестировал это, но, возможно, выражение, подобное этому, было бы тем, что вы ищете :
0 */15 * * * ?
Другие советы
Не хочу давать вам несвязанный ответ, но иногда имеет смысл воспользоваться некоторыми сервисами вместо того, чтобы пытаться сделать это самостоятельно :) Взгляните на http://www.cronservice.co.uk/new/, http://scheduler.codeeffects.com, или http://www.webbasedcron.com/