Опрашивать каждые 45 минут с помощью cron

Мне нужно опросить сразу после развертывания, т.е. 0 секунд, а затем каждые 45 минут с помощью cron.

Должен опрашиваться следующим образом:: 00:00, 00:45, 1:30,2:15,3:00 и так далее


person Gopi    schedule 10.01.2017    source источник
comment
не могли бы вы предоставить мне решение   -  person Gopi    schedule 10.01.2017
comment
00:00, 00:45, 1:30,2:15,3:00 и так далее   -  person Gopi    schedule 10.01.2017
comment
Комментарий с просьбой об ответах бесполезен; вы уже попросили ответы, опубликовав вопрос. Что вы подразумеваете под сразу после развертывания? Вы хотите начать в произвольное время или в полночь?   -  person Keith Thompson    schedule 10.01.2017
comment
После развертывания приложения. Начните опрос один раз, а затем через 45 минут этого времени.   -  person Gopi    schedule 11.01.2017


Ответы (7)


Почему вы должны использовать cron?

Лучше всего в этом случае не использовать cron, а использовать встроенный в Mule планировщик с фиксированной частотой:

Снимок экрана, показывающий встроенную стратегию опроса в 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>
...
person Möoz    schedule 11.01.2017
comment
В будущем мне не нужно проводить опрос по воскресеньям. В этом случае я не мог добиться с помощью планировщика фиксированной частоты. Есть ли способ ограничить использование в планировщике фиксированной частоты. Не могли бы вы предоставить, если это возможно. Если нет, не могли бы вы предоставить решение с выражением cron. - person Gopi; 11.01.2017
comment
Вы не упомянули, что он не должен работать по воскресеньям. Но это нормально, вы можете добавить компонент Groovy, чтобы проверить, воскресенье ли это, и остановить обработку, если это так. - person Möoz; 11.01.2017

Я не знаю, как проводить опрос в Mule, но я могу помочь вам с расписанием cron.

Cron не поддерживает каждые 45 минут. Вам придется разбить его на три cronjobs:

0,45 0-23/3 * * *

30 1-23/3 * * *

15 2-23/3 * * *

person Christian Pekeler    schedule 10.01.2017
comment
Это обычный cron (crontab), тогда как Mule использует планирование Quartz Cron. Кварц допускает 45-минутные интервалы. - person Möoz; 11.01.2017

  1. Выражение CRON для опроса каждые 45 минут, это решит вашу первую проблему.

    0 0/45 * 1/1 * ? *

  2. Насколько я знаю, однократный запуск сразу после развертывания не может быть обработан с помощью «Опроса». В качестве обходного пути, в дополнение к компоненту опроса выше, создайте еще один поток с «QUARTZ Inbound Endpoint» и у него есть атрибут RepeatCount, для которого вы можете установить «Ноль» (это будет выполняться ровно один раз и не будет повторяться).

person Senthil c    schedule 11.01.2017

Выражение Cron (каждые 45 минут): 0 0/45 * 1/1 * ? *

Если вы хотите бегать каждые 45 минут (00:15, 01:00 вот так), используйте кварц. если вы использовали операцию опроса, она не будет запускаться каждые 45 минут, она будет запускаться каждые 45 минут при развертывании проекта или потока.

person Harish Kumar    schedule 11.01.2017

Просто используйте конструкцию планировщика с фиксированной частотой, как указано @Mooz, а затем получите текущее время, проверьте, является ли это воскресеньем, и не обрабатывайте, если это так. Выражение cron на самом деле не предназначено для обработки всех ограничений немедленного запуска, частоты относительно времени запуска, а не расписания часов, и планирования дня даже с расширениями Mule для cron. Другими решениями было бы использование двух контроллеров, но мне это показалось бы чище.

person dlb    schedule 11.01.2017

запускать каждые 10 секунд

0/10 * * * * ?

запускать каждые 45 минут

* 0/45 * * * ?
person Buddhi    schedule 08.02.2018

Вместо использования заданий Cron просто используйте планировщик с фиксированной частотой. установите значение следующим образом:

частота: 45 задержка запуска как: 0

Единица времени: минуты

person satya sandeep    schedule 04.05.2017