Parallele
Execute plusieurs branches en parallele et attend leur jointure. Configurable avec une strategie de jointure (attendre toutes, premiere, N parmi M).
Parametres communs
| Parametre | Type | Requis | Variable | Description |
|---|---|---|---|---|
joinStrategy | choix (settled, all, any, race) | Oui | Non | Strategie de jointure determinant quand le bloc continue apres l'execution parallele. (Defaut: "settled") |
branches | liste | Oui | Non | Liste des branches paralleles. Chaque branche a un identifiant, un libelle et un indicateur d'activation. |
maxConcurrency | nombre | Non | Non | Nombre maximum de branches executees simultanement. Vide = toutes en parallele. (min 1, max 10) |
timeout | nombre | Non | Non | Duree maximale d'execution par branche en millisecondes avant timeout. (min 5000, max 300000) |
outputVariable | texte | Non | Non | Nom de la variable de sortie contenant les resultats de toutes les branches avec leur statut et duree. (Defaut: "parallelResult") |
Parametres par strategie de jointure
settled — Toutes (settled)
Attend que toutes les branches terminent, succes ou echec. Les erreurs sont incluses dans le resultat.
all — Toutes (all)
Attend que toutes les branches terminent avec succes. Echoue si une branche echoue.
any — Une (any)
Termine des qu'une branche reussit. Les autres branches sont annulees.
race — Course (race)
Retourne le premier resultat, succes ou echec. Utile pour les patterns de fallback.
Sortie
Variable de sortie : parallelResults
{
"results": []
}
Exemple
Executer deux recherches en parallele.
Entree :
{}
Sortie :
{"results": [{"branchId": "branch-1", "data": {}}, {"branchId": "branch-2", "data": {}}]}
Astuce
{{parallelResults.results}} contient un tableau avec le resultat de chaque branche. La concurrence maximale est configurable (defaut 5).