Retour à la leçon
Mission

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.