RabbitMQ和Python - 连接无法关闭

时间:2013-09-10 16:12:01

标签: python ubuntu rabbitmq amqp

我正在尝试在Ubuntu 13机器上使用RabbitMQ和Python。

一切似乎都有效 - 也就是说,RabbitMQ正在运行。 Python有图书馆(我正在使用Pika)。代码运行。

但在我使用发布并尝试关闭连接后 - 它将不会关闭。

在我尝试了py-amqplib之后,我得到了相同的结果。似乎队列已创建,但消息未发送,因此发布不会阻止。只有connection.close()阻止。

我认为问题出在RabbitMQ上,而不是python库。

我的代码:

import pika

JOBS_QUEUE_NAME = "my.queue"

connection = pika.BlockingConnection(pika.ConnectionParameters(
        host='localhost'))
channel = connection.channel()

channel.queue_declare(queue=JOBS_QUEUE_NAME)

channel.basic_publish(exchange='',
                      routing_key=JOBS_QUEUE_NAME,
                      body='Hello World!')
print "closing"
connection.close()
print "closed"

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

本周我遇到了同样的问题[connection.close()永远挂了]。

我发现运行RBMQ服务器的主机上的/(和/ tmp和/ var)上的磁盘空间使用率为100%,显然RBMQ服务器存在问题。

当我试图重新启动服务器('service rabbitmq-server restart')时,我收到[FAIL]并且日志告诉我什么......

我做的是:
1.释放磁盘空间
2.手动杀死服务器(使用'kill -HUP'),因为'service stop'命令也失败了 3.开始(服务......开始)

现在一切都很顺利。
顺便说一下,服务器是运行Ubuntu 12.04的VM。

HTH, 阿米尔