Fix using SimpleQueueClient with multiple queues

(imported from commit 18bda1430d76f8b436ad42f85d0ce3cab8fd8193)
This commit is contained in:
Zev Benjamin
2013-09-09 14:13:40 -04:00
parent f5761401b7
commit d7d17c993c

View File

@@ -43,14 +43,16 @@ class SimpleQueueClient(object):
def _generate_ctag(self, queue_name): def _generate_ctag(self, queue_name):
return "%s_%s" % (queue_name, str(random.getrandbits(16))) return "%s_%s" % (queue_name, str(random.getrandbits(16)))
def _reconnect_consumer_callback(self, queue, consumer):
self.log.info("Queue reconnecting saved consumer %s to queue %s" % (consumer, queue))
self.ensure_queue(queue, lambda: self.channel.basic_consume(consumer,
queue=queue,
consumer_tag=self._generate_ctag(queue)))
def _reconnect_consumer_callbacks(self): def _reconnect_consumer_callbacks(self):
for queue, consumers in self.consumers.items(): for queue, consumers in self.consumers.items():
for consumer in consumers: for consumer in consumers:
self.log.info("Queue reconnecting saved consumer %s to queue %s" % (consumer, queue)) self._reconnect_consumer_callback(queue, consumer)
self.ensure_queue(queue, lambda: self.channel.basic_consume(
consumer,
queue=queue,
consumer_tag=self._generate_ctag(queue)))
def close(self): def close(self):
if self.connection: if self.connection: