Retour à la leçonMission
Mission : l'API qui devient injoignable pendant les imports CSV
Diagnostiquer un blocage de l'event loop causé par une opération synchrone, la corriger, et choisir la bonne approche pour un calcul CPU-intensif.
Contexte
L'API Node.js de Technologik répond normalement en 50ms, mais devient totalement injoignable pendant 2 secondes chaque fois qu'un utilisateur importe un fichier CSV. Le code du gestionnaire de route :
js
app.post("/import", (req, res) => {
const contenu = fs.readFileSync(req.file.path, "utf8");
const lignes = parserCSV(contenu);
res.json({ importees: lignes.length });
});Pendant ces 2 secondes, même les requêtes GET les plus simples d'autres utilisateurs, sans aucun rapport avec l'import, ne reçoivent aucune réponse. Il faut aussi décider comment traiter un calcul CPU-intensif (validation cryptographique de chaque ligne) sans reproduire le même blocage.