docs: async def consume_queue(self, subscriber: AbstractSubscriber) -> None:
  
          """
          Subscribe to the queue consuming.
  
          :param subscriber:
          :return:
          """
  
          queue_name = subscriber.name
          topics = subscriber.requested_topics
  
          if queue_name in self._known_queues:
              raise exceptions.ConsumerError("Queue '%s' already being consumed" % queue_name)
  
          await self._declare_queue(queue_name)
  
          # TODO: There is a lot of room to improvement here. Figure out routing done the right way
          for key in topics:
              self._routing.setdefault(key, set())
              if subscriber in self._routing[key]:
                  logger.warning("Subscriber '%s' already receiving routing_key '%s'", subscriber, key)
                  break
              await self._bind_key_to_queue(key, queue_name)
              self._routing[key].add(subscriber)
  
          logger.info("Consuming queue '%s'", queue_name)
          await asyncio.wait_for(
              self._channel.basic_consume(callback=self._on_message, queue_name=queue_name),
              timeout=10
          )
          self._add_to_known_queue(queue_name)