celeryd坚持在配置为使用redis时检查amqp

时间:2014-08-15 06:20:13

标签: celery django-celery

我正在尝试在我的设置中运行celerdy + redis。

CELERYD_NODES="worker1"
CELERYD_NODES="worker1 worker2 worker3"
CELERY_BIN="/home/snijsure/.virtualenvs/mtest/bin/celery"
CELERYD_CHDIR="/home/snijsure/work/mytest/"
CELERYD_OPTS="--time-limit=300 --concurrency=8"
CELERYD_LOG_FILE="/var/log/celery/%N.log"
CELERYD_PID_FILE="/var/run/celery/%N.pid"
CELERYD_USER="celery"
CELERYD_GROUP="celery"
CELERY_CREATE_DIRS=1
export DJANGO_SETTINGS_MODULE="analytics.settings.local"

我在我的base.py中有以下内容

BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
BROKER_HOST = "localhost"
BROKER_BACKEND="redis"
REDIS_PORT=6379
REDIS_HOST = "localhost"
BROKER_USER = ""
BROKER_PASSWORD =""
BROKER_VHOST = "0"
REDIS_DB = 0
REDIS_CONNECT_RETRY = True
CELERY_SEND_EVENTS=True
CELERY_RESULT_BACKEND='redis'
CELERY_TASK_RESULT_EXPIRES =  10
CELERYBEAT_SCHEDULER="djcelery.schedulers.DatabaseScheduler"
CELERY_ALWAYS_EAGER = False
import djcelery
djcelery.setup_loader()

然而,当我使用/etc/init.d/celerdy start

启动celeryd时

我在日志文件中看到以下消息

[2014-08-14 23:16:41,430: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused.
Trying again in 32.00 seconds...

似乎它试图连接到amqp。关于我为什么遵循此处概述的程序的任何想法

http://celery.readthedocs.org/en/latest/getting-started/brokers/redis.html 我正在运行3.1.13版(Cipater)

我做错了什么?

-Subodh

2 个答案:

答案 0 :(得分:4)

你如何开始你的芹菜工人?我曾经遇到过这个错误,因为我没有正确启动它。您应该在执行“celery worker”时添加-A选项,以便芹菜将连接到您在Celery Obj中配置的代理。否则芹菜会尝试连接默认代理。

答案 1 :(得分:0)

您的/ etc / default / celeryd文件看起来没问题。

然而,你正在使用djcelery。我建议你放弃它。如果您查看Django设置指南和示例项目,您会注意到芹菜不再需要任何INSTALLED_APPS。现在,如果您想将Django SQL数据库用作后端,似乎只推荐使用djcelery。

我刚刚重建了这种模式,我可以确认它运行正常,至少在连接到Redis而不是尝试使用RabbitMQ(amqp)方面。