hamba-ho's picture
Préparation pour déploiement Hugging Face (Docker + UI)
fab35c8
# 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
}