Skip to content

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/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.