# backend/services/cache_manager.py import time from typing import Dict, Optional, Any class CacheManager: """ Gestionnaire de cache frugal en mémoire. Remplace Redis pour limiter les dépendances et la consommation de ressources. """ _instance = None _cache: Dict[str, Dict[str, Any]] = {} def __new__(cls): if cls._instance is None: cls._instance = super(CacheManager, cls).__new__(cls) print("Cache Manager local (in-memory) initialisé.") return cls._instance def get(self, key: str) -> Optional[Any]: """Récupère une valeur depuis le cache si elle n'est pas expirée.""" if key in self._cache: item = self._cache[key] if item["expires"] > time.time(): return item["value"] else: # Supprimer si expiré del self._cache[key] return None def set(self, key: str, value: Any, ttl: int = 3600): """Stocke une valeur dans le cache avec une durée de vie (ttl) en secondes.""" self._cache[key] = { "value": value, "expires": time.time() + ttl }