我设置rabbitmqserver并使用以下步骤添加了用户:
uruddarraju@*******:/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.3$ sudo rabbitmqctl list_users Listing users ... guest [administrator] phantom [administrator] phantom1 [] sudo rabbitmqctl set_permissions -p phantom phantom1 ".*" ".*" ".*" uruddarraju@******:/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.3$ sudo netstat -tulpn | grep :5672 tcp6 0 0 :::5672 :::* LISTEN 31341/beam.smp
我的芹菜配置是这样的:
BROKER_URL = 'amqp://phantom:phantom1@10.98.85.92/phantom'
我的代码是这样的:
__author__ = 'uruddarraju' from celery import Celery import time import celeryconfig app = Celery('tasks') app.config_from_object(celeryconfig) @app.task def add(x, y): print 'sleeping' time.sleep(20) print 'awoke' return x + y
当我尝试跑步时
celery -A celery worker --loglevel=info
我懂了
[2014-07-08 23:30:05,028: ERROR/MainProcess] consumer: Cannot connect to amqp://phantom:**@10.98.85.92:5672/phantom: [Errno 54] Connection reset by peer. Trying again in 2.00 seconds... [2014-07-08 23:30:07,101: ERROR/MainProcess] consumer: Cannot connect to amqp://phantom:**@10.98.85.92:5672/phantom: [Errno 54] Connection reset by peer. Trying again in 4.00 seconds...
一切看起来都很完美!有人可以帮我我在这里想念的吗?
我发现对等错误导致连接中断,并假定RabbitMQ没有监听该端口,或者有防火墙阻止了该端口。事实并非如此。
在Ubuntu 16.04.2 LTS上运行RabbitMQ,版本由apt安装:3.5.7-1ubuntu0.16.04.1
Rabbit端口5672的'netstat -a'输出如下:
$ netstat -a|grep -i amqp tcp6 0 0 [::]:amqp [::]:* LISTEN
但是,Rabbit实际上正在侦听IPv4地址和IPv6地址。我用netcat验证了这一点。
要从另一台机器访问Rabbit,您必须使用以下命令设置用户帐户:
sudo rabbitmqctl add_user celery celerypassword sudo rabbitmqctl add_vhost celery_vhost sudo rabbitmqctl set_user_tags celery celerytag sudo rabbitmqctl set_permissions -p celery_vhost celery .* .* .*
问题是我的网址。我的看起来像:
BROKER_URL = 'amqp://celery:celerypassword@10.0.3.3//'
在此之后的倒数第二个斜杠是虚拟主机的名称。上面,我给我的虚拟主机起了名字celery_vhost。要进行连接,我需要将URL更改为:
BROKER_URL = 'amqp://celery:celerypassword@10.0.3.3/celery_vhost'
我在/ var / log / rabbitmq中查看Rabbit日志时发现了这一点。当我使用错误的URL时,有一个.log文件包含以下错误:
{handshake_error,opening,0, {amqp_error,access_refused, "access to vhost '/' refused for user 'celery'", 'connection.open'}}