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

Разве Heroku больше не поддерживает сельдерей?

Я, наконец, дошел до того, что у меня было свободное время, и я хотел добавить сельдерей в проект Python/Flask на Heroku. Однако почти все упоминания о сельдерее из документов Heroku исчезли. Раньше в статье "Начало работы с Django" использовалась статья с tutotial, но она ушла.

Будет ли "просто делать это" сам работать? Какой хороший AMQP-аддон для использования в качестве backend на Heroku?

4b9b3361

Ответ 1

Я являюсь владельцем Python в Heroku.

Сельдерей по-прежнему полностью поддерживается. Документация в нижней части руководства Django была удалена, поскольку она устарела с последней версией Celery (v3.0) и, по моему мнению, была довольно неполной.

В настоящее время я работаю над новой статьей <Центр ссылок > CloudAMPQ.

Ответ 2

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

Вот документация на как начать работу с Django (без той части, где упоминался сельдерей в последний раз, когда я смотрел ее). Они, похоже, теперь используют RQ, чтобы делать то, что сделал сельдерей: Фоновые задачи в Python с RQ. Вы все еще можете найти что-то в отношении сельдерея здесь и здесь, но что все, что я нашел.

Вообще я сомневаюсь, что сельдерей просто удален. Это повлияет на все другие приложения, у которых уже есть что-то настроенное с помощью Celery. Я думаю, вы все равно можете заставить его работать и найти некоторые статьи вдали от документов Heroku.

Ответ 3

Несмотря на то, что это заняло у меня много времени, я хотел бы признать, как это сделать, это действительно довольно прямолинейно. В своем procfile добавьте процесс сельдерея. Это будет выглядеть примерно так:

web: newrelic-admin run-program gunicorn -w 4 myapp.wsgi
celery: python manage.py celeryd -c 3 --beat

Затем просто убедитесь, что масштабный динар сельдерея не менее 1:

heroku ps:scale celery=1

Что все.

Ответ 4

Мы полностью поддерживаем сельдерей на Heroku. Вы можете запускать своих рабочих, называя ваши рабочие процессы и масштабируя их, и запускать любой процесс. Что касается использования в качестве backend, у нас есть множество дополнительных провайдеров, которые могут поддерживать это через Rabbit, Redis или другие.

В devcenter вы можете найти полное руководство по https://devcenter.heroku.com/articles/celery-heroku.

Ответ 5

Я думаю, что есть проблемы с Сельдерей в качестве фоновой задачи на Heroku. Мы пытались создать такие задачи, и они занимают всю память после работы около 20 минут, даже с DEBUG = False на Redis или RabbitMQ. Хуже того, память НИКОГДА не выпускается: каждый раз, когда мы должны перезапускать рабочего. Тот же код работает безупречно на голом Linux или на Mac с Foreman. Это происходит с очень простыми задачами, такими как чтение текстового файла в цикле, запись в модель Django.