Retour à la leçonMission
Mission : dénouer un mélange d'identifiants utilisateur en production
Remplacer une variable globale dangereuse par une ContextVar, et corriger le piège de non-propagation du contexte dans un ThreadPoolExecutor.
Contexte
Une API FastAPI utilise utilisateur_courant_global = None, une simple variable globale, pour savoir quel utilisateur est traité à n'importe quel endroit du code, sans le passer en paramètre partout. En test local avec une seule requête à la fois, tout fonctionne. En production, sous charge, les logs affichent parfois l'identifiant d'un autre utilisateur que celui réellement traité par la requête en cours.
Tu dois expliquer précisément pourquoi la variable globale casse sous charge, la remplacer par une ContextVar, puis résoudre un piège classique lié à ThreadPoolExecutor.