Из того, что я могу сказать, есть два документа, описывающих, как настроить сельдерей. Там есть «Running the worker as a daemon» и есть «First steps with Django».Как настроить Демоны сельдерея с Django
В документации Django, он говорит:
Мы также добавить модуль настроек Django в качестве источника конфигурации для сельдерея. Это означает, что вам не нужно использовать несколько файлов конфигурации и вместо этого настроить Celery непосредственно из настроек Django.
Какие звуки awesome. Однако, от того, что я могу сказать, это те файлы, которые необходимы для полного сельдерея daemonization:
/etc/init.d/celeryd
/etc/defaults/celery
/my-proj/celery.py
/my-proj/__init__.py
И возможно:
/my-proj/settings.py
Мальчик, у которого много файлов. Я думаю, что у меня их все настроено правильно:
/etc/init.d/celeryd
имеет the default init.d script обеспечивается сельдерея./etc/defaults/celery
почти ничего. Только указатель на мое приложение:export DJANGO_SETTINGS_MODULE='cl.settings'
/my-proj/celery.py
имеет рекомендованный файл из First Steps with Django:from __future__ import absolute_import import os from celery import Celery # set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings') from django.conf import settings # noqa app = Celery('proj') # Using a string here means the worker will not have to # pickle the object when using Windows. app.config_from_object('django.conf:settings') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
/my-proj/__init__.py
имеет рекомендованный код с First Steps with Django:from __future__ import absolute_import # This will make sure the app is always imported when # Django starts so that shared_task will use this app. from .celery import app as celery_app
И у меня есть все сельдерей связанные параметры, как следующее в моем settings.py
файле:
CELERY_BIN = '/var/www/.virtualenvs/my-env/bin/celery'
CELERYD_USER = 'www-data'
CELERYD_GROUP = 'www-data'
CELERYD_CONCURRENCY = 20
BROKER_URL = 'redis://'
BROKER_POOL_LIMIT = 30
Тем не менее, когда я начинаю сельдерей с помощью sudo service celeryd start
, он не работает. Вместо этого, становится ясно, что он не взял мои настройки из моего проекта Django, потому что он говорит:
Nov 05 20:51:59 pounamu celeryd[30190]: celery init v10.1.
Nov 05 20:51:59 pounamu celeryd[30190]: Using config script: /etc/default/celeryd
Nov 05 20:51:59 pounamu celeryd[30190]: No passwd entry for user 'celery'
Nov 05 20:51:59 pounamu su[30206]: No passwd entry for user 'celery'
Nov 05 20:51:59 pounamu su[30206]: FAILED su for celery by root
Nov 05 20:51:59 pounamu su[30206]: - ??? root:celery
Nov 05 20:51:59 pounamu systemd[1]: celeryd.service: control process exited, code=exited status=1
Любые идеи, где откачка провод не работает? Мне что-то не хватает?
Я устанавливаю CELERY_USER в настройках django. Проблема в том, что эти настройки не получают. – mlissner