"""redis_client.py — Очередь загрузок через Redis.""" import os, json, redis UPLOAD_QUEUE = "contracts:upload_queue" _r = None def _get(): global _r if _r is None: _r = redis.Redis( host=os.getenv("REDIS_HOST", "redisk8s.f6303a9d-4ab1-4b2f-8aa8-08f933d02f82.svc.cluster.local"), port=int(os.getenv("REDIS_PORT", "6379")), password=os.getenv("REDIS_PASS", "aLITloRefJEiCPqUc2xB"), decode_responses=True, socket_connect_timeout=5, socket_timeout=10, ) return _r def push(task: dict): """Добавить задание в очередь.""" _get().rpush(UPLOAD_QUEUE, json.dumps(task, ensure_ascii=False)) def pop(timeout=5): """Взять задание из очереди (блокирующий).""" result = _get().blpop(UPLOAD_QUEUE, timeout=timeout) if result: return json.loads(result[1]) return None