在 Ubuntu 11.10 上,
我必须使用 celery 从 django 发出 python 任务。
我目前正在同一台机器上进行测试,但最终芹菜工作者应该在远程机器上运行。
django 使用以下设置:
BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_VHOST = "/my_vhost"
BROKER_USER = "celery"
BROKER_PASSWORD = "celery"
我还可以看到我的任务排队 http://localhost:55672/#/queues
celery 守护进程使用以下配置(celeryconfig.py):
BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_USER = "celery"
BROKER_PASSWORD = "celery"
BROKER_VHOST = "/my_vhost"
CELERY_RESULT_BACKEND = "amqp"
import os
import sys
sys.path.append(os.getcwd())
CELERY_IMPORTS = ("tasks", )
跑步
celeryd -l info
运行良好,现在我想将其作为服务运行。
我已遵循 http://ask.github.com/celery/cookbook/daemonizing.html
现在我尝试使用以下命令运行它:
sudo /etc/init.d/celeryd start
但是该消息没有被消费,芹菜日志中也没有错误。
/etc/默认/celeryd
CELERYD_NODES="w1"
CELERYD_CHDIR="/path/to/django/project"
CELERYD_OPTS="--time-limit=300 --concurrency=1"
CELERY_CONFIG_MODULE="celeryconfig"
# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
# Workers should run as an unprivileged user.
CELERYD_USER="celery"
CELERYD_GROUP="celery"
我也在 Ubuntu 中创建了用户 celery,不确定是否有必要。
任何帮助都将不胜感激,谢谢,盖伊
答案1
我们正在使用导师在 Ubuntu 上运行 Celery,它运行良好,包括定期状态检查和重新启动死亡进程。
答案2
更改了 celeryconfig.py 权限(所有者):
sudo chown root:staff celeryconfig.py
并且它有效......在我意识到之后很容易追踪:
sudo /etc/init.d/celeryd status
给出了信息丰富的错误解释。
盖伊