Планирование работы - crontab лучшее решение? - PullRequest
3 голосов
/ 10 июня 2011

Я занимаюсь разработкой веб-приложения, которое сильно зависит от планирования работы.Задания будут очень короткими, например, один HTTP-запрос.Однако их будет много.Каждый день может быть запланировано более нескольких тысяч рабочих мест, но не все одновременно.Моим первым желанием было использовать crontab для планирования этих заданий, но я не уверен, что это лучшее решение.

Я вижу, что crontab в основном используется для планирования интенсивных административных задач, но не для очень коротких.Подходит ли для этого crontab?Может ли он справиться с таким большим количеством рабочих мест?Должен ли я реализовать индивидуальное решение?Существуют ли какие-либо услуги, которые могут обеспечить лучшее решение и производительность?

Большое спасибо!

Ответы [ 4 ]

3 голосов
/ 10 июня 2011

Cron будет запускать что угодно - длинное или короткое. Однако, если вы собираетесь запускать тысячи заданий в день, вы можете столкнуться с проблемой, заключающейся в том, что максимальная частота cron разрешается один раз в минуту. Если вам нужен более высокий тариф, вам придется искать другие решения.

Возможной альтернативой Cron является Fat Controller, который работает как cron в том, что он в основном запускает другие программы, но имеет некоторые преимущества. Fat Controller может делать несколько вещей:

  • Демонизируйте что-нибудь - предоставьте ему любой PHP, Python, любой скрипт, даже приложение Java, и это можно превратить в фоновый процесс.

  • Многозадачность что угодно - может запускать множество экземпляров любого скрипта / программы параллельно. Он даже поддерживает обратную связь, поэтому сценарии, которые обрабатывают пакеты данных, могут сказать, нужно ли запускать больше экземпляров (т. Е. Нужно ли обрабатывать больше данных) или если данных больше нет и, следовательно, нет необходимости запускать сценарий в течение некоторого времени.

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

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

Сайт: http://www.4pmp.com/fatcontroller/

Я нахожусь в процессе обновления сайта, так что на данный момент это немного уродливо, но есть много информации о конфигурации, начале работы и вариантах использования.

0 голосов
/ 22 декабря 2011

Моя компания выпускает CloudQuartz ( www.thecloudblocks.com ), который позволяет планировать задания через API и получать обратные вызовы, когда они должны быть запущены.

Мы сделали это так, чтобы мы могли планировать задания на кластере серверов, что было невозможно при использовании CRON или планировщика Windows.

0 голосов
/ 10 июня 2011

Cron имеет разрешение в одну минуту;он просыпается только раз в минуту, чтобы увидеть, нужно ли что-нибудь запускать.Если вам нужно что-то с более жестким разрешением, вам понадобится специальное решение.

Также, если вы делаете это на OS X, вы будете использовать launchd, а не cron.(cron все еще поддерживается).

0 голосов
/ 10 июня 2011

Это то, что я использую для моего личного сайта. Конечно, у cron есть возможность запускать долгосрочные задачи, но это ни в коем случае не должно быть ограничено.

...