すべてのプロダクト
Search
ドキュメントセンター

CloudFlow:並列

最終更新日:Jan 12, 2025

このトピックでは、並列状態について説明し、関連する例を示します。

概要

並列状態は、複数の子状態を並列に実行するために使用されます。並列状態は複数のブランチを定義し、各ブランチには一連の子状態が含まれています。

並列状態が実行されると、すべてのブランチに含まれる子状態が同時に実行されます。すべてのブランチが実行された後、デフォルトでは、すべてのブランチの結果を含む map[string]any 出力が返されます。次に、システムは出力コンストラクターを使用して結果をさらに処理します。

説明

並列状態には最大 50 個のブランチを設定できます。

次の表は、並列状態に含まれる属性について説明しています。

属性

データ型

必須

説明

Name

string

はい

状態の名前。

my-state-name

Description

string

いいえ

状態の説明。

ここに記述します

Type

string

はい

状態のタイプ。

Parallel

InputConstructor

map[string]any

いいえ

入力コンストラクター。

詳細については、「入力と出力」をご参照ください。

Branches

ParallelBranch

はい

並列に実行されるブランチ。

詳細については、「ParallelBranch」をご参照ください。

OutputConstructor

map[string]any

いいえ

出力コンストラクター。

「入力と出力」トピックの「状態の OutputConstructor」セクションをご参照ください。

Next

string

いいえ

現在の状態が完了した後に実行される次の状態。 End 属性が true の場合、この属性を指定する必要はありません。

my-next-state

End

bool

いいえ

現在のスコープを終了するかどうかを指定します。

true

Retry

Retry

いいえ

再試行ポリシーに関する情報。

詳細については、「エラー処理」をご参照ください。

Catch

Catch

いいえ

キャッチポリシーに関する情報。

詳細については、「エラー処理」をご参照ください。

ParallelBranch

属性

データ型

必須

説明

States

array

はい

ワークフローに含まれる状態の配列。

このトピックの「ユースケース」セクションをご参照ください。

StartAt

string

はい

ワークフローの実行を開始する状態。

my start task

ユースケース

次のサンプルワークフローは、並列状態を定義しています。並列状態には 2 つのブランチが含まれており、各ブランチには Pass 子状態が含まれています。

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  // FieldA
      - StartAt: Pass2
        States:
          - Type: Pass
            InputConstructor:
              FieldA: 321  // FieldA
            Name: Pass2
            End: true
  • 次のコードは、Pass1 子状態の出力を示しています。

    {
        "FieldA": 123
    }
  • 次のコードは、Pass2 子状態の出力を示しています。

    {
        "FieldA": 321
    }
  • 次のコードは、Parallel1 状態の出力を示しています。デフォルト名がブランチに割り当てられます。出力は Branch<Index> の形式で構成されます。

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