すべてのプロダクト
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
        }
    }