Как обращаться с сверхурочными кронами - PullRequest
1 голос
/ 09 ноября 2011

Предположим, если у меня есть задачи cron, выполняющиеся каждую минуту. И если каждый раз для выполнения этой задачи требуется более одной минуты, что произойдет. Будет ли следующий cron ждать первого cron или будет работать без каких-либо проверок.

Я хочу запускать задачу cron каждую минуту, и я не пересекаю задачи cron, как это в случае длительной задачи / ситуации.

пожалуйста, помогите.

Ответы [ 3 ]

0 голосов
/ 09 ноября 2011

Да, cron будет запускать ваш процесс продолжительностью более 1 минуты каждую минуту, пока что-нибудь не выйдет из строя.

Вы захотите установить какой-нибудь замок на свою работу, если сможете сделать это при запуске:

if not get_lock()
    print "Another process is running"
    exit

Это, конечно, предполагает, что вы владеете работающим кодом. Если вы запускаете команду, которую вы не кодировали, то я бы порекомендовал создать оболочку оболочки, которая реализует вышеупомянутую псевдокодированную логику, где get_lock () увидит, выполняется ли другой процесс, подобный этому.

0 голосов
/ 22 ноября 2011

Как уже упоминалось, CRON будет запускать ваш скрипт каждую минуту независимо от того, работает ли еще один экземпляр вашего скрипта.

Если вы хотите избежать этого и не хотите реализовывать свой собственный механизм блокировки, вы можете попробовать использовать альтернативу CRON, называемую Fat Controller, которая является демоном, который будет постоянно перезапускать сценарии. При желании вы можете указать интервал между запусками, а также при желании указать максимальное время выполнения, поэтому, если скрипт выполняется в режиме AWOL, его можно уничтожить.

На сайте есть несколько вариантов использования и дополнительная информация:

http://fat -controller.sourceforge.net /

0 голосов
/ 09 ноября 2011

Это зависит от того, что вы бежите.Если это ваш собственный скрипт, вы можете реализовать механизм проверки блокировки / блокировки, чтобы избежать запуска дубликатов.

Но это не работа cron.

...