【发布时间】:2015-08-19 20:19:02
【问题描述】:
我正在编写一个需要从两个不同队列消费的消费者。
1-> 用于实际消息(事先声明的队列)。
2-> 用于控制消费者行为的命令消息(由消费者动态声明并使用特定格式的路由键绑定到现有交换(每个消费者运行实例需要一个))
我正在使用选择连接来异步消费。
self.channel.basic_qos(prefetch_count = self.prefetch_count)
log.info("Establishing channel with the Queue: "+self.commandQueue)
print "declaring command queue"
self.channel.queue_declare(queue=self.commandQueue,
durable = True,
exclusive=False,
auto_delete=True,
callback = self.on_command_queue_declared)
队列未被声明或回调未被调用。
另一方面,来自实际消息队列的消息没有被消耗,因为我添加了这段代码。
Pika 日志不会显示任何错误,消费者应用程序也不会崩溃。
有人知道为什么会这样吗,或者有更好的方法吗?
【问题讨论】:
-
我什至尝试将一个已经存在的队列用于命令队列。并在两个队列上执行了 basic_consume,但两个队列都没有被消耗。
-
是否需要将不同队列的消息消费到不同的函数中,或者不同队列的消息可以调用同一个函数?
-
在不同的回调方法中消费会很理想。但你可以让它使用同样的方法,这也很棒。