Как мне запустить пользовательскую команду управления на героку? - PullRequest
0 голосов
/ 14 мая 2019

Мое первое приложение на Django развернуто на heroku.В этом приложении у меня есть набор пользовательских команд управления, которые я хотел бы периодически запускать.Например, мне нужно, чтобы одна команда запускалась раз в две недели, другая - каждые воскресенье и среду, а другая - раз в неделю.Я читал о нескольких различных вариантах, включая сельдерей, планировщик Heroku и Cron.Я не уверен, какое решение выбрать и почему.

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Еще одна опция, которая может работать для вас, - это дополнение Heroku, которое мы недавно добавили, под названием Cron To Go . Он более надежен, чем Heroku Scheduler, и более гибок, поскольку вы можете использовать любое выражение cron для планирования фоновых заданий. Вероятно, это будет дешевле в использовании, чем в Celery, который требует, чтобы вы всегда включали dyno, и проще в обслуживании, так как вам не нужно нажимать изменения кода каждый раз, когда вы хотите изменить расписание.

0 голосов
/ 14 мая 2019

На Heroku Cron и Heroku Scheduler - это примерно одно и то же.

Планировщик Heroku:

Это бета-функция для Heroku, которую я последний раз проверял. Это не гарантирует 100% безотказной работы. Если у вас есть платящие клиенты, и эти периодические задачи являются критически важными, вам не следует полагаться на это. Если вы ищете бесплатный способ реализации периодических задач для чего-то, что не слишком критично, то Heroku Scheduler подойдет вам.

Сельдерей:

Это библиотека асинхронных задач. Он очень большой и прочный и может делать все что угодно. Самым большим отличием от Cron является то, что вы можете запланировать выполнение асинхронной задачи в любой момент времени и не ограничиваться только периодическими задачами (вещи, которые запускаются каждые X минут / дней и т. Д.). Эта надежность имеет свою цену, хотя. Это сложнее настроить на производстве и локально. Особенно на местном уровне. На производстве я бы порекомендовал CloudAMQP для брокера и RedisCloud для результатов. Передавайте параметры задачи только как примитивы, чтобы избежать выделения и уменьшения размера сообщения.

Если вам нужно что-то надежное, но вы не хотите использовать сельдерей, есть также RQ и Dramatiq .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...