python - RabbitMQ 和 Python - 连接无法关闭

标签 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"

有什么想法吗?

谢谢!

最佳答案

本周我遇到了同样的问题 [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/

相关文章:

python - 二进制 numpy 数组之间的快速操作

python - 如何设置 web2py fixtures

python - 高效循环大型 JSON 文件

linux - 将 bash 输出重定向到 bash 脚本中的文件

python - <package name> 和 python-<package name> 有什么区别?

python - 根据数据框制作 2 个变量的条形图

linux - 列出文件时箭头表示什么?

postgresql - 如何正确使用 Postgres 触发器中的任务队列

java - Android 工作室 : Rabbitmq: Error:java. lang.ClassNotFoundException : Class io. micrometer.core.instrument.MeterRegistry 找不到

web-scraping - 将 url 传递到从 RabbitMQ 使用的 scrapy 中的解析方法