我使用py-amqp和Flopsy模块遇到了这个奇怪的问题。我写了一个发布者,它将消息发送到RabbitMQ服务器,我希望能够将它发送到指定的队列。在Flopsy模块上是不可能的,所以我调整了它添加一个参数和一行来在Publisher对象的_init__方法上声明队列
def __init__(self, routing_key=DEFAULT_ROUTING_KEY,
exchange=DEFAULT_EXCHANGE, connection=None,
delivery_mode=DEFAULT_DELIVERY_MODE, queue=DEFAULT_QUEUE):
self.connection = connection or Connection()
self.channel = self.connection.connection.channel()
self.channel.queue_declare(queue) # ADDED TO SET UP QUEUE
self.exchange = exchange
self.routing_key = routing_key
self.delivery_mode = delivery_mode
channel对象是py-amqplib库的一部分
我遇到的问题是,即使它将消息发送到指定的队列,它也会将消息发送到默认队列。 AS在这个系统中我们希望发送相当多的消息,我们不想强调系统制作无用的重复...我试图调试代码并进入py-amqplib库,但我是无法找出任何错误或缺乏步骤。另外,我无法在代码之外找到py-amqplib的任何文档。
关于为什么会发生这种情况的任何想法以及如何纠正它?
答案 0 :(得分:0)
所以,我一直在向发布商和消费者提供交换信息,而不是使用queue_declare
的电话,而且看起来工作正常。