From ece9df8c54baeda4d50f296a93f59f0b57075cbe Mon Sep 17 00:00:00 2001 From: Anton Khizunov Date: Mon, 1 Jul 2024 12:18:33 +0300 Subject: [PATCH] fix #65: avoid worker crash in case connection is broken --- taskiq_redis/redis_broker.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/taskiq_redis/redis_broker.py b/taskiq_redis/redis_broker.py index ec2c13c..e44927e 100644 --- a/taskiq_redis/redis_broker.py +++ b/taskiq_redis/redis_broker.py @@ -123,8 +123,12 @@ async def listen(self) -> AsyncGenerator[bytes, None]: :yields: broker messages. """ redis_brpop_data_position = 1 - async with Redis(connection_pool=self.connection_pool) as redis_conn: - while True: - yield (await redis_conn.brpop(self.queue_name))[ - redis_brpop_data_position - ] + while True: + try: + async with Redis(connection_pool=self.connection_pool) as redis_conn: + yield (await redis_conn.brpop(self.queue_name))[ + redis_brpop_data_position + ] + except ConnectionError as exc: + logger.warning("Redis connection error: %s", exc) + continue