【发布时间】:2014-04-29 21:03:47
【问题描述】:
当我在终端上运行celery -A tasks worker 时,我不断收到:ERROR/MainProcess] consumer: Cannot connect to amqp://ec2celeryuser。
基本上我要做的是让 celery/rabbitmq 在 (2) 个 ec2 实例中正常工作。将tasks.py 中的一个愚蠢任务传递给rabbitmq 进行处理。
- 实例 1 - 房子 rabbitMQ
目前 RabbitMQ 运行良好。如果我运行sudo rabbitmqctl status,它会输出:
Status of node 'rabbit@ip-xx-xxx-xxx-xx' ...
[{pid,786},
2。实例 2 - Houses Celery
我正在尝试在终端中使用以下内容在 instance 2 上针对实例 1 运行 celery:
celery - 一个任务工作者
我有一个文件celeryconfig.py:
BROKER_URL = 'amqp://ec2celeryuser:mypasshere@xx.xxx.xx.xx:5672/celeryserver1/'
#CELERY SETTINGS
CELERY_IMPORTS = ("tasks",)
CELERY_RESULT_BACKEND = "amqp"
我有一个文件client.py:
from tasks import add
result = add.delay(4, 4) # call task
result_sum = result.get(timeout=5) # wait to get result for a maximum of 5 seconds
我有一个文件tasks.py:
from celery import Celery
app = Celery('tasks', broker='amqp://ec2celeryuser:mypasshere@xx.xxx.xx.xx:5672/celeryserver1/')
@app.task
def add(x, y):
return x + y
我已经正确设置了一个vhost,一个用户ec2celeryuser,并赋予这个用户以下权限:
sudo rabbitmqctl set_permissions -p /celeryserver1 ec2celeryuser ".*" ".*" ".*"
如果我这样做:sudo rabbitmqctl list_users 在 RabbitMQ(实例 1)上显示:
ec2celeryuser []
guest [administrator
我已经尝试了两个用户名及其密码,但没有任何变化。
我一直在关注Celery Guide 和tutorial,但运气不佳。
我在这里做错了什么?显然存在连接问题,但我做错了什么?
谢谢!
【问题讨论】:
-
一个疯狂的猜测,但你的密码中有一些奇怪的字符吗?
-
不,它的字母数字,没有特殊字符。
标签: python rabbitmq celery message-queue