diff --git a/pyinfra/queue/queue_manager/pika_queue_manager.py b/pyinfra/queue/queue_manager/pika_queue_manager.py index 8274048..6be0d01 100644 --- a/pyinfra/queue/queue_manager/pika_queue_manager.py +++ b/pyinfra/queue/queue_manager/pika_queue_manager.py @@ -143,8 +143,14 @@ class PikaQueueManager(QueueManager): message = (frame, properties, body) return self.publish_response(message, visitor) - self.channel.basic_consume(self._input_queue, callback) - self.channel.start_consuming() + consumer_tag = None + + try: + consumer_tag = self.channel.basic_consume(self._input_queue, callback) + self.channel.start_consuming() + finally: + if consumer_tag: + self.channel.basic_cancel(consumer_tag) def clear(self): try: