From 4f18dbc60da104f08f5eecf6c52fd3de7c787f49 Mon Sep 17 00:00:00 2001 From: Julius Unverfehrt Date: Tue, 17 May 2022 14:41:03 +0200 Subject: [PATCH] Pull request #36: RED-4049 fix: Pyinfra now retries to reconnect after AMPQ connection loss and eventually throws an error if unsuccessful, forcing container restart. Merge in RR/pyinfra from RED-4049-AMQP-reconnect to master Squashed commit of the following: commit 1baafb781c9f623faf4223043e1185fd4ecbbe0e Author: Julius Unverfehrt Date: Tue May 17 14:36:47 2022 +0200 RED-4049 fix: Pyinfra now retries to reconnect after AMPQ connection loss and eventually throws an error if unsuccessful, forcing container restart. --- src/serve.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/serve.py b/src/serve.py index 2fc4f9f..45025ab 100644 --- a/src/serve.py +++ b/src/serve.py @@ -51,12 +51,11 @@ def main(): response_strategy = StorageStrategy(storage) visitor = QueueVisitor(storage, callback, response_strategy) - queue_manager = PikaQueueManager(CONFIG.rabbitmq.queues.input, CONFIG.rabbitmq.queues.output) - @retry(ConsumerError, tries=3, delay=5, jitter=(1, 3)) def consume(): - consumer = Consumer(visitor, queue_manager) - try: + try: # RED-4049 queue manager needs to be in try scope to eventually throw Exception after connection loss. + queue_manager = PikaQueueManager(CONFIG.rabbitmq.queues.input, CONFIG.rabbitmq.queues.output) + consumer = Consumer(visitor, queue_manager) consumer.basic_consume_and_publish() except Exception as err: raise ConsumerError from err