【问题标题】:Celery in virtualenv with supervisor带有主管的virtualenv中的芹菜
【发布时间】:2019-02-10 21:14:05
【问题描述】:

使用 python2.7 在 Linux Ubuntu 中安装主管

virtualenv:python3.6 + Django2.0 + celery4.2

这是 celery.py 文件:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'savemoney.settings')
app = Celery('savemoney')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

初始化文件:

from __future__ import absolute_import, unicode_literals

from .celery import app as celery_app

__all__ = ['celery_app']

我在本地的 celery 工人很好,但是当我与主管在虚拟环境中运行 Celery 时:

  File "/path/env/mysite/mysite/__init__.py", line 5, in <module>
    from .celery import app as celery_app
  File "/path/env/mysite/mysite/celery.py", line 7, in <module>
    app.config_from_object('django.conf:settings', namespace='CELERY')
TypeError: config_from_object() got an unexpected keyword argument 'namespace'

我的芹菜工人设置:

[program:celery.worker] 

directory=/path/env/mysite/

command=/path/env/mysite/celery -A mysite worker -l info
user=root

numprocs=1          
autostart=true      
autorestart=true    
stopsignal=INT
stdout_logfile=/path/env/mysite/celery_worker.log 
stdout_logfile_maxbytes=10MB  
stdout_logfile_backups=10     
 redirect_stderr=false         
stderr_logfile=/path/env/mysite/celery_worker_err.log 
stderr_logfile_maxbytes=10MB 
stderr_logfile_backups=10

我试过了:

1.环境

environment=PATH="/path/env/bin",VIRTUAL_ENV="/path/env/mysite/",PYTHONPATH="/path/env/lib/python:/path/env/lib/python3.6/site-packages"

2.command full_path

command=/path/env/mysite/celery -A mysite worker -l info

主管>地位

supervisor> status
celery.work                      BACKOFF   can't find command '/path/env/mysite/celery'

我这样引用别人的路径:

command=/path/env/mysite/bin/celery -A mysite worker -l info

但我的项目没有“bin”目录

我试过了:

command=/path/env/bin/celery -A mysite worker -l info

错误:

ModuleNotFoundError: No module named 'mysite'

【问题讨论】:

  • 你能分享你的celery.py文件吗?你确定你使用的 celery 版本是 4.2 吗?

标签: python django celery supervisord


【解决方案1】:

这个问题是使用 celery 4.2 with supervisor

我使用 celery 3.1.16 解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 2012-06-13
    • 1970-01-01
    • 2016-02-13
    • 2021-08-22
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多