Aller au contenu principal
Noeuds n8n

Comment executer des workflows n8n en parallele

Publié le 15 mars 20257min

Chapitres

Résumé

Par defaut, n8n execute les noeuds d'une boucle de maniere sequentielle : chaque iteration attend la fin de la precedente. Pour 5 items avec 5 secondes de traitement chacun, cela donne 25 secondes au total. L'execution parallele via les sous-workflows permet de reduire ce temps a 5 secondes, quel que soit le nombre d'items.

Ce tutoriel montre comment passer d'une execution sequentielle a une execution parallele en utilisant le noeud Execute Sub-Workflow avec l'option "Wait for sub-workflow completion" desactivee.

Le probleme : l'execution sequentielle

Scenario classique avec une boucle SplitInBatches :

  1. 5 messages a envoyer sur Discord
  2. Chaque envoi prend 5 secondes (simulation avec un noeud Wait)
  3. Execution sequentielle : 5 x 5 = 25 secondes

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

La solution : sous-workflow asynchrone

Le principe est de deplacer 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" (noeud d'ecoute). Il recoit les donnees en entree, execute le traitement (wait + envoi Discord) et se termine de maniere autonome. On peut definir les champs attendus en entree (ex : "message" de type string) ou accepter toutes les donnees.

2. Appeler depuis le workflow principal

Dans la boucle du workflow principal, on remplace les noeuds de traitement par le noeud "Execute Sub-Workflow". La configuration cle est l'option "Wait for sub-workflow completion" = Non. Sans cette option, le comportement reste sequentiel.

3. Resultat

Les 5 sous-workflows sont lances quasi-simultanement. Chacun attend ses 5 secondes en parallele. 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 execution parallele, 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'execution parallele n'est pas adaptee.

CritereSequentielParallele
Temps (5 items x 5s)25 secondes5 secondes
Ordre de completionGarantiNon garanti
Charge serveurFaiblePlus elevee (N executions simultanees)
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 probleme de l'execution sequentielle

Demonstration d'une boucle classique : 5 messages envoyes 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 noeud Execute Sub-Workflow

Configuration du noeud dans le workflow principal. L'option cle : 'Wait for sub-workflow completion' desactivee pour lancer les executions en parallele.

05:00Test et resultats

Execution du workflow parallele : les 5 messages arrivent en 5 secondes au lieu de 25. Demonstration que l'ordre de completion n'est pas garanti (1, 2, 3, 5, 4).

06:00Debug et bonnes pratiques

Resolution d'une erreur de mapping des donnees entre workflow principal et sous-workflow. Cas d'usage adaptes a l'execution parallele.

Questions fréquentes

Transcription complète

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