import logging from arq import create_pool from arq.connections import ArqRedis, RedisSettings from app.core.config import settings _pool: ArqRedis | None = None logger = logging.getLogger(__name__) async def init_redis() -> None: global _pool try: _pool = await create_pool(RedisSettings.from_dsn(settings.redis_url)) logger.info("Redis pool initialisé") except Exception as e: logger.warning(f"Redis indisponible, export Markdown désactivé : {e}") async def close_redis() -> None: global _pool if _pool: await _pool.close() _pool = None async def enqueue(job_name: str, *args) -> None: if _pool is None: return try: await _pool.enqueue_job(job_name, *args) except Exception as e: logger.warning(f"Redis enqueue échoué ({job_name}) : {e}")