From bf4c85a0ab9fed19a44508f2cbef6858cbb32259 Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Fri, 8 Jul 2022 15:46:11 +0200 Subject: [PATCH] RED-4564: POC-test to see if cancelling the consumer prevents messages from being stuck --- pyinfra/queue/queue_manager/pika_queue_manager.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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: