【问题标题】:RabbitMQ and Python - connection can't closeRabbitMQ 和 Python - 连接无法关闭
【发布时间】:2013-09-10 16:12:01
【问题描述】:

我正在尝试在 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()' 一切正常。为什么?!如果我不关闭,那会不会把 RabbitMQ 搞砸?
  • 使用 RabbitMQ (v2.6.1) 和 pika (v0.9.5),您的代码可以工作。
  • 我改用 Kombu,一切都很好:)

标签: python ubuntu rabbitmq amqp


【解决方案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, 阿米尔

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多