def METHOD_NAME(
    self,
    queue: str,
    on_message: OnMessageCallback,
) -> None:
    """Subscribe to queue with on_message callback.
    Listens to an event stream and invokes on_message with an EventContext
    built from the incoming message.
    Args:
        queue: Name of queue.
        on_message: Callback to be invoked with incoming messages.
    """
    callback = partial(self._on_message_handler, on_message=on_message)
    while True:
        try:
            self.client.run(queue=queue, on_message=callback)
        except (AMQPError, ChannelError):
            self.client.stop()
            reconnect_delay = self._get_reconnect_delay()
            time.sleep(
                reconnect_delay
            )  # todo: update this blocking call to asyncio.sleep
        except KeyboardInterrupt as e:
            self.client.stop()
            raise KeyboardInterrupt from e
        if self.client.should_reconnect:
            self.client.reset()
        else:
            break  # exit