fix: close leaked Redis clients on failed startup retries (#43)

This commit is contained in:
d3vyce
2026-06-02 18:56:57 +02:00
committed by GitHub
parent e253096236
commit db6e2b9715
2 changed files with 44 additions and 2 deletions
+4 -2
View File
@@ -60,12 +60,14 @@ class RedisDeduplicationMiddleware(TaskiqMiddleware):
async def startup(self) -> None:
last_error: BaseException | None = None
for attempt in range(self.startup_retries):
client = Redis.from_url(self.redis_url)
try:
self._redis = Redis.from_url(self.redis_url)
await cast(Awaitable[bool], self._redis.ping())
await cast(Awaitable[bool], client.ping())
self._redis = client
self._release_script = self._redis.register_script(RELEASE_LUA_SCRIPT)
return
except Exception as exc:
await client.aclose()
last_error = exc
if attempt < self.startup_retries - 1:
delay = self.startup_retry_delay * (2**attempt)