From 5e898a9b93526e6e667767e54c60f4c84589989d Mon Sep 17 00:00:00 2001 From: Miguel Grinberg Date: Sat, 22 Nov 2025 18:15:59 +0000 Subject: [PATCH] Retry initial Redis connection (Fixes #1534) --- src/socketio/async_redis_manager.py | 7 ++++--- src/socketio/redis_manager.py | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/socketio/async_redis_manager.py b/src/socketio/async_redis_manager.py index 1cb7fb9..a43807c 100644 --- a/src/socketio/async_redis_manager.py +++ b/src/socketio/async_redis_manager.py @@ -134,11 +134,12 @@ class AsyncRedisManager(AsyncPubSubManager): break async def _redis_listen_with_retries(self): # pragma: no cover - retry_sleep = 1 _, error = self._get_redis_module_and_error() + retry_sleep = 1 + subscribed = False while True: try: - if not self.connected: + if not subscribed: self._redis_connect() await self.pubsub.subscribe(self.channel) retry_sleep = 1 @@ -149,7 +150,7 @@ class AsyncRedisManager(AsyncPubSubManager): 'retrying in ' f'{retry_sleep} secs', extra={"redis_exception": str(exc)}) - self.connected = False + subscribed = False await asyncio.sleep(retry_sleep) retry_sleep *= 2 if retry_sleep > 60: diff --git a/src/socketio/redis_manager.py b/src/socketio/redis_manager.py index 827918b..4a9d69d 100644 --- a/src/socketio/redis_manager.py +++ b/src/socketio/redis_manager.py @@ -169,11 +169,12 @@ class RedisManager(PubSubManager): break def _redis_listen_with_retries(self): # pragma: no cover - retry_sleep = 1 _, error = self._get_redis_module_and_error() + retry_sleep = 1 + subscribed = False while True: try: - if not self.connected: + if not subscribed: self._redis_connect() self.pubsub.subscribe(self.channel) retry_sleep = 1 @@ -182,7 +183,7 @@ class RedisManager(PubSubManager): logger.error('Cannot receive from redis... ' f'retrying in {retry_sleep} secs', extra={"redis_exception": str(exc)}) - self.connected = False + subscribed = False time.sleep(retry_sleep) retry_sleep *= 2 if retry_sleep > 60: