如何使用Django配置芹菜守护进程

如何使用Django配置芹菜守护进程,django,celery,virtualenv,django-celery,celeryd,Django,Celery,Virtualenv,Django Celery,Celeryd,据我所知,有两个文件描述了如何设置芹菜。有个“有个” 在Django文件中,它说: 我们还添加了Django设置模块作为芹菜的配置源。这意味着您不必使用多个配置文件,而是直接从Django设置配置芹菜 听起来很棒。但是,据我所知,完整芹菜daemonization需要以下文件: /etc/init.d/celeryd /etc/defaults/芹菜 /my proj/芹菜.py /my proj/\uuuu init\uuuuu.py 还有可能: /my proj/settings.py

据我所知,有两个文件描述了如何设置芹菜。有个“有个”

在Django文件中,它说:

我们还添加了Django设置模块作为芹菜的配置源。这意味着您不必使用多个配置文件,而是直接从Django设置配置芹菜

听起来很棒。但是,据我所知,完整芹菜daemonization需要以下文件:

  • /etc/init.d/celeryd
  • /etc/defaults/芹菜
  • /my proj/芹菜.py
  • /my proj/\uuuu init\uuuuu.py
还有可能:

  • /my proj/settings.py
男孩,那是很多文件。我想我已经把它们都设置好了:

  • /etc/init.d/celeryd
    由芹菜提供
  • /etc/defaults/芹菜几乎什么都没有。只需指向我的应用程序的指针:

    export DJANGO_SETTINGS_MODULE='cl.settings'
    
  • /my proj/celery.py
    包含以下目录中的推荐文件:

  • /my proj/_init__.py
    具有以下建议代码:

在我的
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

你知道哪根救生索坏了吗?我错过了一些重要的东西吗?

你错过了芹菜应用程序的设置。在
/etc/defaults/celery
中设置它,或将其设置为worker命令的参数:

celery worker -A my-proj

否则,芹菜不知道它应该看
/my proj/cellery.py
。django环境变量不影响芹菜加载的内容。

您正试图以系统用户“芹菜”的身份运行芹菜,这是init脚本使用的默认值。您应该创建此用户,或者可以通过在
/etc/defaults/celery
中设置
CELERYD\u user
来覆盖此用户


就我个人而言,我更喜欢用它来管理芹菜

我正在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 worker -A my-proj