def consume(self, nowait=False): q = Queue(self.target.queue_name, exchange=Exchange(self.target.exchange_name, type=self.EXCHANGE_TYPE, durable=self.options['durable'], auto_delete=self.options['auto_delete']), routing_key=self.target.routing_key, channel=self.channel, **self.options) q.declare(nowait) def _callback(raw_message): message = self.channel.message_to_python(raw_message) self._callback_handler(message, self.callback) q.consume(callback=_callback)
def test_consume(self): b = Queue('foo', self.exchange, 'foo', channel=get_conn().channel()) b.consume('fifafo', None) assert 'basic_consume' in b.channel
def test_consume(self): b = Queue('foo', self.exchange, 'foo', channel=get_conn().channel()) b.consume('fifafo', None) self.assertIn('basic_consume', b.channel)
queue.declare() queue.purge() logging.info("Binding queue '%s' to exchange '%s' with:" % (queue.name, exchange)) routing_keys = routing_keys or ['#'] for rk in routing_keys: try: logging.debug("rk: %s" % rk) queue.bind_to(exchange=exchange, routing_key=rk) except Exception, e: logging.exception(str(e)) logging.info('Done: binding') consumer_tag = '%s::%s::consuming_exchange' % (self.name, queue.name) queue.consume(consumer_tag, callback=self._consumer_producer_callback, no_ack=True) self._queues.append(queue) return queue def _consumer_producer_callback(self, message): routing_key = message.delivery_info.get('routing_key') self.publish(message, routing_key) logging.info("Published a message with rk '%s' to '%s'" % (routing_key, self.name)) return True class BasePersistConsumer(Queue): def __init__(self, name, channel=None):