Ответ 1
Я не думаю, что выражение cron позволит вам это сделать, но вы можете использовать
SimpleScheduleBuilder.repeatSecondlyForever( 25 )
поскольку 300 (5 минут) кратно 25, оно будет повторяться автоматически.
Я использую API Quartz Scheduling для Java. Не могли бы вы помочь мне запустить каждые 25 секунд, используя cron-выражение. Это просто задержка. Он не должен начинаться всегда со второго 0. Например, последовательность выглядит так: 0:00, 0:25, 0:50, 1:15, 1:40, 2:05 и т.д. До минуты 5, когда последовательность начинается снова со второго 0. Спасибо.
Я не думаю, что выражение cron позволит вам это сделать, но вы можете использовать
SimpleScheduleBuilder.repeatSecondlyForever( 25 )
поскольку 300 (5 минут) кратно 25, оно будет повторяться автоматически.
Если вы хотите, чтобы задание запускалось с регулярным интервалом, вы можете использовать Quartz SimpleTrigger
с указанным repeatInterval
.
Единственный способ сделать это с помощью триггера cron настолько сложный, чтобы быть бесполезным; вам намного лучше с SimpleTrigger от других ответов. Тем не менее, если это должно быть cron, вам нужно настроить пять различных триггеров cron:
0/25 0/5 * * * *
15/25 1/5 * * * *
5/25 2/5 * * * *
20/25 3/5 * * * *
10/25 4/5 * * * *
Первый триггер срабатывает в 0:00:25, 0:00:50; затем второй триггер срабатывает в 0:01:15 и 0:01:40; третий в 0:02:05, 0:02:30, 0:02:55; четвертый в 0:03:20, 0:03:45; и, наконец, пятый в 0:04:10 и 0:04:35. Первый триггер затем снова забирается в 0:05:00 и т.д.
Это работает только потому, что 25 секунд делятся равномерно на 5 минут (что равномерно равно часу). Если вы хотите, чтобы каждый 23 секунды? Забудьте об этом!
С Quartz 2.1.5 это поможет:
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0/20 * * * * ?"))
.build();
*/25 * * * * *
- [wiki] http://en.wikipedia.org/wiki/Cron
- [кварцевый учебник] http://www.quartz-scheduler.org/docs/tutorial/TutorialLesson06.html
У вас не может быть такого графика для кварца.
Одна вещь, которую вы можете сделать, - запланировать задание обертки, которое будет выполняться каждые 5 секунд, и выполнять каждую работу каждый пятый вариант.
Вы можете запланировать выполнение задания, но уменьшите частоту с помощью Camel Throttler.
<route>
<from uri="jms:queue:TestQueue"/>
<!-- throttle 1 messages per 25 sec -->
<throttle timePeriodMillis="25000">
<constant>1</constant>
<to uri="bean:TestBean?method=testMethod"/>
</throttle>
</route>