Мне нужно опросить сразу после развертывания, т.е. 0 секунд, а затем каждые 45 минут с помощью cron.
Должен опрашиваться следующим образом:: 00:00, 00:45, 1:30,2:15,3:00 и так далее
Мне нужно опросить сразу после развертывания, т.е. 0 секунд, а затем каждые 45 минут с помощью cron.
Должен опрашиваться следующим образом:: 00:00, 00:45, 1:30,2:15,3:00 и так далее
Почему вы должны использовать cron?
Лучше всего в этом случае не использовать cron, а использовать встроенный в Mule планировщик с фиксированной частотой:
Обратите внимание, что задержка по умолчанию равна "0", что означает, что он будет запущен сразу после развертывания, а затем будет запускаться каждые 45 минут.
Вот конфигурация-xml:
...
<flow name="polling-frequency-example-flow"
processingStrategy="synchronous">
<poll doc:name="poll-every-forty-five-mins">
<fixed-frequency-scheduler frequency="45" timeUnit="MINUTES"/>
</poll>
<!-- Do Something -->
</flow>
...
Я не знаю, как проводить опрос в Mule, но я могу помочь вам с расписанием cron.
Cron не поддерживает каждые 45 минут. Вам придется разбить его на три cronjobs:
Выражение CRON для опроса каждые 45 минут, это решит вашу первую проблему.
0 0/45 * 1/1 * ? *
Насколько я знаю, однократный запуск сразу после развертывания не может быть обработан с помощью «Опроса». В качестве обходного пути, в дополнение к компоненту опроса выше, создайте еще один поток с «QUARTZ Inbound Endpoint» и у него есть атрибут RepeatCount, для которого вы можете установить «Ноль» (это будет выполняться ровно один раз и не будет повторяться).
Выражение Cron (каждые 45 минут): 0 0/45 * 1/1 * ? *
Если вы хотите бегать каждые 45 минут (00:15, 01:00 вот так), используйте кварц. если вы использовали операцию опроса, она не будет запускаться каждые 45 минут, она будет запускаться каждые 45 минут при развертывании проекта или потока.
Просто используйте конструкцию планировщика с фиксированной частотой, как указано @Mooz, а затем получите текущее время, проверьте, является ли это воскресеньем, и не обрабатывайте, если это так. Выражение cron на самом деле не предназначено для обработки всех ограничений немедленного запуска, частоты относительно времени запуска, а не расписания часов, и планирования дня даже с расширениями Mule для cron. Другими решениями было бы использование двух контроллеров, но мне это показалось бы чище.
запускать каждые 10 секунд
0/10 * * * * ?
запускать каждые 45 минут
* 0/45 * * * ?
Вместо использования заданий Cron просто используйте планировщик с фиксированной частотой. установите значение следующим образом:
частота: 45 задержка запуска как: 0
Единица времени: минуты