文档

并行(Parallel)

更新时间:

本文介绍了并行状态及其相关使用示例。

基本概念

并行状态用来并行执行多个状态。它定义了多个分支(Branches),每个分支包含一系列状态。

执行并行状态会并发执行所有分支包含的状态。当所有分支执行结束后,默认将输出一个包含所有分支结果的map[string]any,然后可以通过输出构造器将结果进行进一步处理。

说明

并行状态最大分支数限制为50。

并行状态包含以下属性。

字段

类型

是否必选

描述

示例值

Name

string

状态名称。

my-state-name

Description

string

状态描述。

describe it here

Type

string

状态类型。

Parallel

InputConstructor

map[string]any

输入构造器。

请参见输入构造器

Branches

ParallelBranch

并行分支。

详见ParallelBranch

OutputConstructor

map[string]any

输出构造器。

请参见输出构造器

Next

string

当前状态的下一状态。当End取值为true时,无需指定。

my-next-state

End

bool

是否为当前作用域的终结节点。

true

ParallelBranch

字段

类型

是否必选

描述

示例值

States

array

内部嵌套的状态数组。

详见示例

StartAt

string

内部嵌套状态数组的执行起点。

my start task

使用示例

下面的示例流程定义了一个并行步骤,这个并行步骤包含两个分支,每个分支又包含了一个传递步骤。

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
  • Pass1的输出如下。

    {
    	"FieldA": 123,
    }
  • Pass2的输出如下。

    {
    	"FieldA": 321,
    }
  • Parallel1的输出如下,每个Branch会提供默认的名称,按照"Branch<Index>"的格式组织结果。

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

  • 本页导读 (1)
文档反馈