""" Client Redis partagé — pool de connexions async pour ARQ et Pub/Sub. """ from redis.asyncio import ConnectionPool, Redis from app.config import settings _pool: ConnectionPool | None = None async def get_redis_pool() -> Redis: """Retourne un client Redis avec pool de connexions partagé.""" global _pool if _pool is None: _pool = ConnectionPool.from_url( settings.REDIS_URL, max_connections=20, decode_responses=True, ) return Redis(connection_pool=_pool) async def close_redis_pool() -> None: """Ferme proprement le pool de connexions Redis.""" global _pool if _pool is not None: await _pool.disconnect() _pool = None