【发布时间】:2015-09-20 12:48:18
【问题描述】:
我正在使用 supervisord 将 celery 作为守护进程运行,但它给了我错误 ImportError: No module named tasks worker。我可以在没有supervisord的情况下从shell运行它。我的 supervisord 配置文件如下:
[program:celery]
directory=/home/yongfengzhang/videomaker
environment=PYTHONPATH="/home/yongfengzhang/videomaker:/home/yongfengzhang/videomaker/videomaker:$PYTHONPATH",DJANGO_SETTINGS_MODULE="videomaker.settings"
;command=/home/yongfengzhang/Envs/videomake/bin/celery -A "tasks worker" --loglevel=INFO --concurrency=4
command=celery -A "tasks worker" --loglevel=INFO --concurrency=4
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1
user=yongfengzhang ; setuid to this UNIX account to run the program
stdout_logfile=/home/yongfengzhang/logs/celery/celery.log
stderr_logfile=/home/yongfengzhang/logs/celery/celery.err
autostart=true
autorestart=true
所以在/home/yongfengzhang/videomaker 下我有一个tasks.py,它定义了 celery 实例和任务函数(此处未显示):
app = Celery('tasks', backend='redis://localhost', broker='amqp://myuser:bloomsky@localhost:5672/myvhost')
在这个文件夹(~/videomaker)中直接运行 celery 时,一切都很好。 Envs/videomake 是我的 virtualenv 所在的位置。文件夹中有一个__init__.py。任何输入将不胜感激。非常感谢。
【问题讨论】:
标签: python django celery python-import supervisord