From fc1f23a24da71edd3c874434fd3b4d6db9a2c271 Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Mon, 1 Aug 2022 11:26:15 +0200 Subject: [PATCH] RED-4653: Corrected signal handler by correctly handling passed params --- pyinfra/queue/queue_manager.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pyinfra/queue/queue_manager.py b/pyinfra/queue/queue_manager.py index e1d4543..135ea5e 100644 --- a/pyinfra/queue/queue_manager.py +++ b/pyinfra/queue/queue_manager.py @@ -7,7 +7,7 @@ from typing import Callable import pika import pika.exceptions -from pyinfra.config import get_config, Config +from pyinfra.config import Config pika_logger = logging.getLogger("pika") pika_logger.setLevel(logging.WARNING) @@ -34,8 +34,8 @@ class QueueManager(object): connection_params = get_connection_params(config) atexit.register(self.stop_consuming) - signal.signal(signal.SIGTERM, self.stop_consuming) - signal.signal(signal.SIGINT, self.stop_consuming) + signal.signal(signal.SIGTERM, self._handle_stop_signal) + signal.signal(signal.SIGINT, self._handle_stop_signal) self._connection = pika.BlockingConnection(parameters=connection_params) self._channel = self._connection.channel() @@ -75,6 +75,10 @@ class QueueManager(object): self._consumer_token = None + def _handle_stop_signal(self, signal_number, _stack_frame, *args, **kwargs): + self.logger.info(f"Received signal {signal_number}") + self.stop_consuming() + def _create_queue_callback(self, process_message_callback: Callable): def callback(_channel, frame, properties, body): self.logger.info(f"Received message from queue with delivery_tag {frame.delivery_tag}")