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
Le cron extractPrecisionsBenevoles (toutes les 60s) tourne 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. Le rattrapage jeune (extractPrecisionsJeunes) est retiré : l'extraction jeune part uniquement avant la page genre de l'onboarding.
- Clé :
cron_extract_benevoles_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.