2013-03-07 2 views
13

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

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

ответ

55

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

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

В настоящее время я работаю над новым Dev Center article, который подробно рассказывает о том, как извлечь максимальную пользу из сельдерея. Он должен быть опубликован в ближайшее время.

Что касается аддона очереди - я большой поклонник CloudAMPQ.

+7

+1 для рта лошади. – jathanism

+4

Отправлено? Это через месяц, но я ничего не могу найти. – speg

+1

С нетерпением ждем встречи с Кеннетом! – Erik

3

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

Вот документация на how to get started with Django (без части, где упоминался сельдерей в последний раз, когда я смотрел его). Они, похоже, теперь используют RQ, чтобы сделать то, что сделал сельдерей раньше: Background Tasks in Python with RQ. Вы все еще можете найти что-то относительно сельдерея here и here, но это все, что я нашел.

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

+0

Я нашел те же ссылки. Ссылки на сельдерей в других оставшихся документах Heroku не очень полезны и практически не существуют. Конечно, сельдерей - это всего лишь пакет, и я мог это сделать сам, но они удалили документ, заменили другой документ Python на mion только rq и удалили плагин (я думаю, что раньше был плагин). Это заставляет меня думать, будто они обнаружили проблему, из-за которой она не работала, а не удаляла ее добровольно. Я искал, но не смог найти внешние учебники. Я буду искать еще кое-что. –

+0

Пример, который у них был для сельдерея, был ужасен, хотя он использовал брокера базы данных для одного, поэтому я не удивлюсь, если кто-то испытал проблемы (с использованием db не рекомендуется) – asksol

+0

почему не рекомендуется использовать db из Сельдерей? –

1

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

2

Несмотря на то, что это заняло у меня много времени, чем я хотел бы признать, как это сделать, это действительно довольно прямолинейно. В своем 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 

Это все.

+0

Привет, Джош - не могли бы вы написать более подробное сообщение в блоге об этом. Я заплачу вам 100 долларов. – jononomo

+0

Не стесняйтесь связаться со мной для обсуждения. Благодарю. – Josh

2

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

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

Смежные вопросы