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/getRedis et GET /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.