Aller au contenu principal
Nœuds n8n

Comment exécuter des workflows n8n en parallèle

Publié le 15 mars 20257min

Chapitres

Résumé

Par defaut, n8n exécute les nœuds d'une boucle de manière séquentielle : chaque itération attend la fin de la précédente. Pour 5 items avec 5 secondes de traitement chacun, cela donne 25 secondes au total. L'exécution parallèle via les sous-workflows permet de réduire ce temps a 5 secondes, quel que soit le nombre d'items.

Ce tutoriel montre comment passer d'une exécution séquentielle a une exécution parallèle en utilisant le nœud Execute Sub-Workflow avec l'option "Wait for sub-workflow completion" désactivée.

Le problème : l'exécution séquentielle

Scénario classique avec une boucle SplitInBatches :

  1. 5 messages à envoyer sur Discord
  2. Chaque envoi prend 5 secondes (simulation avec un nœud Wait)
  3. Execution séquentielle : 5 x 5 = 25 secondes

Le workflow fonctionne mais c'est tres long. Si on a 100 items avec 2 secondes de traitement chacun, ça fait plus de 3 minutes d'attente.

La solution : sous-workflow asynchrone

Le principe est de déplacer la logique de traitement dans un sous-workflow et de l'appeler sans attendre sa completion :

1. Creer le sous-workflow

Le sous-workflow utilise le trigger "When executed by another workflow" (nœud d'écoute). Il reçoit les données en entree, exécute le traitement (wait + envoi Discord) et se termine de manière autonome. On peut définir les champs attendus en entree (ex : "message" de type string) ou accepter toutes les données.

2. Appeler depuis le workflow principal

Dans la boucle du workflow principal, on remplace les nœuds de traitement par le nœud "Execute Sub-Workflow". La configuration clé est l'option "Wait for sub-workflow completion" = Non. Sans cette option, le comportement reste séquentiel.

3. Resultat

Les 5 sous-workflows sont lances quasi-simultanément. Chacun attend ses 5 secondes en parallèle. Temps total : 5 secondes au lieu de 25. Le gain est proportionnel au nombre d'items.

Point important : l'ordre n'est pas garanti

En exécution parallèle, les sous-workflows se terminent dans un ordre imprevisible. Dans l'exemple, les messages arrivent dans l'ordre 1, 2, 3, 5, 4 au lieu de 1, 2, 3, 4, 5. Si l'ordre est critique, l'exécution parallèle n'est pas adaptee.

CritereSequentielParallele
Temps (5 items x 5s)25 secondes5 secondes
Ordre de completionGarantiNon garanti
Charge serveurFaiblePlus elevee (N exécutions simultanées)
Complexite1 workflow2 workflows (principal + sous-workflow)
Cas d'usageOrdre important, API avec rate limitEnvois independants, traitements autonomes

Calculateur sequentiel vs parallele

Estimez le temps gagne en passant d'une execution sequentielle a une execution parallele.

Sequentiel (boucle classique)

30s10 x 3s = 30 secondes

Chaque item attend la fin du precedent

Parallele (sous-workflows)

3sTous les items en 3s simultanement
+2 items en parallele

Tous les items demarrent en meme temps

Gain : 27 secondes economisees (90% plus rapide).

Contenu détaillé

00:00Le problème de l'exécution séquentielle

Démonstration d'une boucle classique : 5 messages envoyés un par un avec 5 secondes d'attente chacun. Temps total : 25 secondes.

02:00Creer le sous-workflow

Construction du sous-workflow avec le trigger 'When executed by another workflow'. Definition des champs d'entree et de la logique de traitement.

03:30Le nœud Execute Sub-Workflow

Configuration du nœud dans le workflow principal. L'option clé : 'Wait for sub-workflow completion' désactivée pour lancer les exécutions en parallèle.

05:00Test et résultats

Exécution du workflow parallèle : les 5 messages arrivent en 5 secondes au lieu de 25. Démonstration que l'ordre de complétion n'est pas garanti (1, 2, 3, 5, 4).

06:00Debug et bonnes pratiques

Résolution d'une erreur de mapping des données entre workflow principal et sous-workflow. Cas d'usage adaptés à l'exécution parallèle.

Questions fréquentes

Transcription complète

Ce tutoriel vous a été utile ? Contactez-moi pour un accompagnement personnalisé sur n8n.

Prendre RDV