def consume(self, queue, consumer, consumer_tag='', no_local=False,
                no_ack=True, exclusive=False, nowait=True, ticket=None,
                cb=None, cancel_cb=None):
        '''Start a queue consumer.

        Accepts the following optional arg in addition to those of
        `BasicClass.consume()`:

        :param cancel_cb: a callable to be called when the broker cancels the
          consumer; e.g., when the consumer's queue is deleted. See
          www.rabbitmq.com/consumer-cancel.html.
        :type cancel_cb: None or callable with signature cancel_cb(consumer_tag)
        '''
        # Register the consumer's broker-cancel callback entry
        if cancel_cb is not None:
            if not callable(cancel_cb):
                raise ValueError('cancel_cb is not callable: %r' % (cancel_cb,))

        if not consumer_tag:
            consumer_tag = self._generate_consumer_tag()

        self._broker_cancel_cb_map[consumer_tag] = cancel_cb

        # Start consumer
        super(RabbitBasicClass, self).consume(queue, consumer, consumer_tag,
                                              no_local, no_ack, exclusive,
                                              nowait, ticket, cb)