1

我正在尝试在 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"

有任何想法吗?

谢谢!

4

1 回答 1

1

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

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

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

我所做的是:
1. 释放磁盘空间
2. 手动终止服务器(使用 'kill -HUP'),因为 'service stop' 命令也失败
了 3. 启动它(service ... start)

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

HTH,阿米尔

于 2015-09-01T06:05:18.750 回答