Подтвердить что ты не робот

Почему выполнение запланированных задач с сельдереем предпочтительнее crontab?

Учитывая, что сельдерей уже является частью стека для запуска очередей задач (т.е. он не добавляется только для запуска клонов, что кажется чрезмерным ИМХО).

Как его функция "периодических заданий" может быть полезной в качестве замены для crontab? В частности, поиск следующих точек.

  • Основные плюсы/минусы crontab
  • Использовать случаи, когда сельдерей лучше выбора, чем crontab
  • Специальный пример использования Django: Celery vs crontab для запуска периодических заданий на основе django, когда сельдерей был включен в стек как django-celery для quait django tasks.
4b9b3361

Ответ 1

Я использую cron для веб-сайта для производства и переключился на сельдерей на текущий проект. Я гораздо больше в сельдерее, чем в cron, вот почему:

  • Celery + Celerybeat имеет более мелкую зернистость, чем cron. Cron не может работать более одного раза в минуту, в то время как сельдерей может (у меня есть задача, выполняемая каждые 90 секунд, которая проверяет электронную почту для отправки сообщений, а другая - очищает список онлайн-пользователей).
  • Линия cron должна вызывать script или уникальную команду с абсолютным путем и информацией о пользователе. Celery вызывает функции python, не нужно писать больше, чем код.
  • С сельдереем, чтобы развернуть на другую машину, вам просто нужно вытащить/скопировать код, который обычно находится в одном месте. Развертывание с помощью cron потребует дополнительной работы (вы можете автоматизировать его, но...)
  • Я действительно считаю, что сельдерей лучше подходит, чем cron для обычной уборки (кэш, база данных) и вообще для коротких задач. Однако сброс базы данных - это больше работа для cron, потому что вы не хотите помешать очереди событий со слишком длинными задачами.
  • Не в последнюю очередь, сельдерей легко распределяется между машинами.

Ответ 2

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