Запуск Джанго-сельдерея в производстве - PullRequest
12 голосов
/ 23 июля 2010

Я создал веб-приложение Django и некоторые сервисы Django-Piston. Используя веб-интерфейс, пользователь отправляет некоторые данные, которые отправляются в веб-службу, и эта веб-служба, в свою очередь, использует Django-celery для запуска фоновой задачи.

Все отлично работает в среде разработки с использованием manage.py. Теперь я пытаюсь перенести это в производство на правильном сервере Apache. Веб-приложение и веб-службы работают нормально, но у меня возникли серьезные проблемы, начиная с celeryd в качестве демона. Основываясь на этих инструкциях: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon Я создал файл celeryconfig.py и вставил его в каталог / usr / bin (именно здесь celeryd находится на моем сервере arch linux).

CELERYD_CHDIR="/srv/http/ControllerFramework/"
DJANGO_SETTINGS_MODULE="settings"
CELERYD="/srv/http/ControllerFramework/manage.py celeryd"

Однако, когда я пытаюсь запустить celeryd из командной строки, я получаю следующую ошибку:

 "Missing connection string! Do you have "
celery.exceptions.ImproperlyConfigured: Missing connection string! Do you have    CELERY_RESULT_DBURI set to a real value?

Не уверен, куда идти отсюда. Ниже приведен мой раздел settings.py, который относится к этой проблеме:

BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "controllerFramework"
BROKER_PASSWORD = "******"
BROKER_VHOST = "localhost"

1 Ответ

8 голосов
/ 27 июля 2010

В итоге я поболтал с лидером проекта по django-celery.Пара вещей.Прежде всего, нужно запустить сельдерей с помощью manage.py celeryd.Во-вторых, в файле settings.py вам нужно «импортировать djcelery». Эта проблема импорта может быть исправлена ​​в следующей версии, но сейчас вы должны это сделать.

...