Я пишу потребителя, которому нужно использовать из двух разных очередей.
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 не показывают ошибок или сбоев в работе потребительского приложения.
Кто-нибудь знает, почему это происходит, или есть лучший способ сделать это?