Skip to content

Carte de tension


Fichiers

  • Services/TensionMapService — l’orchestrateur : calcule la tension autour d’un point (GEORADIUS missions → SMEMBERS hexagones → HMGET compteurs), et réagit à l’ouverture, au déplacement et à la fermeture des missions.
  • Services/RedisCache/TensionCacheService — les compteurs de tension par hexagone dans Redis (tension:hex:counts), incrémentés/décrémentés à chaque mission (HINCRBY).
  • Services/H3ClientService — appelle le service externe H3 (services.h3.url) pour convertir une zone en hexagones (gridDisk).
  • Jobs/TensionMapJobs/* — recalcul asynchrone de la tension à l’ouverture, au déplacement et à la fermeture d’une mission.
  • Events/TensionEvents/* — TensionUpdatedEvent, TensionRefreshedEvent : diffusion des changements de tension (broadcast mis en file).

Dépendances

  • Redis — les compteurs par hexagone (tension:hex:counts) et les sets d’hexagones par mission.
  • H3 (service externe h3:3000) — l’indexation hexagonale du territoire.
  • Géo & cache chaud — réutilise le GeoSet des missions (GEORADIUS) pour trouver les missions d’un rayon (voir la page dédiée).
  • MySQL — source de vérité pour la réhydratation (recalcul depuis les missions ouvertes).
  • Queue (Horizon) — le recalcul de tension tourne en jobs asynchrones.

Nature — une feature produit (la carte de chaleur de la demande, affichée aux workers). Elle consomme la couche Géo & cache chaud et pousse ses mises à jour au front en WebSocket. Ce n’est pas une couche transverse, c’est un domaine à part entière.