【发布时间】: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