import redis from redis.lock import Lock from config import Config config = Config() def get_redis_client(host: str or None, port: str) -> None or redis.client: if not host: return return redis.StrictRedis(config.REDIS_HOST, config.REDIS_PORT) redis_client = get_redis_client(config.REDIS_HOST, config.REDIS_PORT) def get_key(key: str) -> str: """Compose a Redis key. Args: key (str): Key. Returns: str: Complete key constructed by concatenated prefix + key. """ return f"{config.APP_NAME}/{key}" def get_redis_lock() -> Lock or None: """Get redis lock Returns: Lock or None: Redis lock. """ if not redis_client: return return redis_client.lock(get_key("lock"), timeout=config.REDIS_LOCK_TTL)