我正在编写一个消费者,需要从两个不同的队列中消费。
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)
未声明队列或未调用回调。
另一方面,由于我添加了这段代码,因此不会消耗来自实际消息Queue的消息。
Pika日志不显示任何错误,也不会消费者应用程序崩溃。
有人知道为什么会这样吗或有更好的方法吗?
答案 0 :(得分:-1)
你看过这里的例子:http://pika.readthedocs.org/en/latest/examples/asynchronous_consumer_example.html?
还有一些阻止示例: http://pika.readthedocs.org/en/latest/examples/blocking_consume.html http://pika.readthedocs.org/en/latest/examples/blocking_consumer_generator.html
阻止并选择连接比较:http://pika.readthedocs.org/en/latest/examples/comparing_publishing_sync_async.html
阻止和选择pika 0.10.0预发行版中的连接速度更快,并且该版本中有许多错误修复。