Cette rubrique décrit l'étape parallèle et fournit un exemple.
Introduction
Une étape parallèle exécute plusieurs branches simultanément. Chaque branche contient une série d'étapes séquentielles.
Chaque branche d'une étape parallèle dispose d'une variable locale. Lors de l'exécution, toutes les branches sont traitées concurremment. Les étapes séquentielles de chaque branche modifient la variable locale qui lui est associée. Une fois toutes les branches exécutées, un mappage de sortie transforme le tableau des variables locales issues des branches en la sortie de l'étape parallèle.
Une étape parallèle peut comporter au maximum 100 branches.
Une étape parallèle possède les propriétés suivantes :
(Obligatoire) type : Type de l'étape. La valeur doit être
parallel.(Obligatoire) name : Nom de l'étape.
-
(Obligatoire) branches : Tableau de branches.
(Obligatoire) steps : Définit les étapes séquentielles de la branche.
(Facultatif) end : Indique s'il s'agit de la dernière étape du flux.
(Facultatif) inputMappings : Mappages d'entrée.
-
(Facultatif) outputMappings : Mappages de sortie. La variable
$localde cette étape est un tableau. Chaque élément du tableau est un objet JSON contenant le résultat d'exécution d'une branche.RemarqueSi aucun mappage de sortie n'est spécifié, la sortie de cette étape est vide par défaut.
Exemple
L'exemple de flux suivant définit une étape parallèle. Cette étape contient deux branches, chacune comprenant une étape pass.
version: v1
type: flow
steps:
- type: parallel
name: myparallel
branches:
- steps:
- type: pass
name: pass1
outputMappings:
- target: result
source: pass1
- steps:
- type: pass
name: pass2
outputMappings:
- target: result
source: pass2
outputMappings:
- target: result
source: $local[*].result
-
pass1est défini comme suit.{ "result": "pass1" } -
pass2est défini comme suit.{ "result": "pass2" } -
myparallelest défini comme suit.{ "result": ["pass1", "pass2"] }