我正在尝试在 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"
有什么想法吗?
谢谢!
最佳答案
本周我遇到了同样的问题 [connection.close() 永远挂起]。
我发现运行 RBMQ 服务器的主机上/(以及/tmp 和/var)上的磁盘空间使用率为 100%,因此显然 RBMQ 服务器出现了问题。
当我尝试重新启动服务器(“servicerabbitmq-server restart”)时,我得到了 [FAIL],日志没有告诉我任何内容...
我所做的是:
1.释放磁盘空间
2. 手动终止服务器(使用“kill -HUP”),因为“service stop”命令也失败
3.启动它(服务...启动)
现在一切都很好。
顺便说一句,服务器是运行 Ubuntu 12.04 的虚拟机。
HTH, 阿米尔
关于python - RabbitMQ 和 Python - 连接无法关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723976/