def run(self):
        """
        Consume message from the Advanced Message Queuing Protocol
        (AMPQ) compliant broker as soon as they are queued, and call
        the instance method ``__on_message_received`` that the
        inheriting class must have implemented.
        """
        self._setUp()

        naming = 'skunkworks.lbs.%s.%s.%s' % (settings.ENVIRONMENT_STAGE, \
            self.service_name.lower(), self.message_type.lower())

        self.channel.queue_declare(queue=naming, durable=True, exclusive=False, auto_delete=False)
        self.channel.exchange_declare(exchange=naming, type="direct", durable=True, auto_delete=False,)
        self.channel.queue_bind(queue=naming, exchange=naming, routing_key=naming)

        self.channel.basic_consume(queue=self.queue, no_ack=True,
               callback=self._on_message_received,
               consumer_tag=self.__class__.__name__)
        try:
            while True:
                self.channel.wait()
        finally:
            self.channel.basic_cancel(self.__class__.__name__)