Tous les produits
Search
Centre de documentation

CloudFlow:Parallel state

Dernière mise à jour :Aug 11, 2026

Un état Parallel exécute plusieurs branches simultanément. Utilisez-le pour diviser un flux de travail en chemins concurrents, par exemple pour récupérer des données depuis plusieurs sources en même temps ou envoyer des notifications via différents canaux en parallèle.

Fonctionnement

Un état Parallel contient une ou plusieurs branches, et chaque branche possède sa propre séquence d'états enfants. À l'exécution :

  1. L'état Parallel démarre toutes les branches de manière concurrente.

  2. Chaque branche exécute ses états enfants indépendamment.

  3. Une fois toutes les branches terminées, l'état Parallel regroupe les résultats dans une sortie unique de type map[string]any. Le résultat de chaque branche est stocké sous une clé nommée Branch<Index> (par exemple, Branch0, Branch1).

  4. Si un OutputConstructor est défini, l'état Parallel l'applique pour transformer la sortie combinée avant de transmettre le résultat à l'état suivant.

Limites

  • Nombre maximal de branches par état Parallel : 50

Attributs

Attributs de l'état Parallel

**Attribut** **Type** **Obligatoire** **Description**
Name string Oui Nom de l'état.
Description string Non Description de l'état.
Type string Oui Type d'état. Définissez sur Parallel.
InputConstructor map[string]any Non Transforme l'entrée avant de la transmettre aux branches. Consultez la section Entrées et sorties.
Branches ParallelBranch[] Oui Branches à exécuter en parallèle. Consultez la section ParallelBranch.
OutputConstructor map[string]any Non Transforme les résultats combinés des branches avant de les transmettre à l'état suivant. Consultez la section OutputConstructor de l'état dans « Entrées et sorties ».
Next string Non État suivant à exécuter après la fin de l'état Parallel. Non requis si End est défini sur true.
End bool Non Indique s'il faut mettre fin à la portée actuelle après la fin de l'état Parallel.
Retry Retry Non Politique de nouvelle tentative. Consultez la section Gestion des erreurs.
Catch Catch Non Politique de capture d'erreur. Consultez la section Gestion des erreurs.

ParallelBranch

Attributs de ParallelBranch

**Attribut** **Type** **Obligatoire** **Description**
States array Oui Tableau des états de la branche.
StartAt string Oui Nom du premier état à exécuter dans la branche.

Exemple

Le flux de travail suivant définit un état Parallel nommé Parallel1 avec deux branches. Chaque branche contient un seul état Pass qui produit une sortie statique.

Type: StateMachine
Name: my-wkfl
SpecVersion: v1
StartAt: Parallel1
States:
  - Type: Parallel
    Name: Parallel1
    End: true
    Branches:
      - StartAt: Pass1
        States:
          - Type: Pass
            Name: Pass1
            End: true
            OutputConstructor:
              FieldA: 123
      - StartAt: Pass2
        States:
          - Type: Pass
            InputConstructor:
              FieldA: 321
            Name: Pass2
            End: true

Sortie de la branche

Chaque branche produit sa propre sortie indépendamment :

  • Sortie de Pass1 (Branch0) :

      {
          "FieldA": 123
      }
  • Sortie de Pass2 (Branch1) :

      {
          "FieldA": 321
      }

Sortie combinée de l'état Parallel

L'état Parallel fusionne toutes les sorties des branches dans une seule map. Chaque branche reçoit une clé par défaut au format Branch<Index> :

{
    "Branch0": {
        "FieldA": 123
    },
    "Branch1": {
        "FieldA": 321
    }
}

Étapes suivantes

  • Entrées et sorties : transformez les données circulant entre les états à l'aide de InputConstructor et OutputConstructor.

  • Gestion des erreurs : configurez les politiques Retry et Catch pour gérer les échecs des branches.