Redis
Redis est utilisé pour deux usages distincts dans le back, via RedisService (back/src/binomes/services/redis.service.ts).
1. Locks pour les cron jobs LLM
Les cron jobs extractPrecisionsBenevoles (toutes les 60s) et extractPrecisionsJeunes (toutes les 60s, offset 30s) tournent sur le conteneur API (WORKER_SERVER !== '1'). Si l'extraction LLM dépasse l'intervalle, le run suivant démarrerait pendant que le précédent est encore en cours (Node.js est async). Le lock Redis empêche ce chevauchement.
- Clés :
cron_extract_benevoles_running,cron_extract_jeunes_running - TTL : 3600s (libère automatiquement le lock si le process crash sans passer par le
finally) - Implémenté dans
CronTasksService(back/src/binomes/services/cron-tasks.service.ts)
Le code contient aussi une logique de délai par
NODE_APP_INSTANCE(variable PM2) pour stagger les instances multiples — c'est du code mort, on n'utilise pas PM2.
2. State du rate-limiting FrontApp
L'API FrontApp renvoie des headers de quota (x-ratelimit-remaining, x-ratelimit-reset). Ces valeurs sont stockées dans Redis pour être réutilisées entre les requêtes sans ré-interroger l'API.
- Clés :
fa_remaining,fa_reset - Implémenté dans
EventsService(back/src/events/events.service.ts) - Exposé via
GET /user/front/getRedisetGET /user/front/resetRedis
Configuration
Variable d'env : REDIS_HOST (défaut : redis://redis:6379).
Aucune authentification configurée — Redis est uniquement accessible en interne via Docker.