6.8. parallelism


OpenShift Serverless Logic 序列化并行任务的执行。单词 parallel 并不表示同时执行,这意味着分支的执行之间没有逻辑依赖项。如果活跃的分支挂起其执行,则不活跃分支可以启动或停止任务的执行,而无需等待活跃的分支完成。例如,一个活跃的分支可能会在等待事件接收时暂停其执行。

并行状态是一种状态,它将当前工作流实例执行路径分成多个路径,每个分支一个。这些执行路径并行执行,并根据定义的 completionType 参数值重新加入到当前执行路径中。

JSON 格式的并行工作流示例

 {
     "name":"ParallelExec",
     "type":"parallel",
     "completionType": "allOf",
     "branches": [
        {
          "name": "Branch1",
          "actions": [
            {
                "functionRef": {
                    "refName": "functionNameOne",
                    "arguments": {
                        "order": "${ .someParam }"
                    }
                }
            }
        ]
        },
        {
          "name": "Branch2",
          "actions": [
              {
                  "functionRef": {
                      "refName": "functionNameTwo",
                      "arguments": {
                          "order": "${ .someParam }"
                      }
                  }
              }
          ]
        }
     ],
     "end": true
}

YAML 格式的并行工作流示例

name: ParallelExec
type: parallel
completionType: allOf
branches:
- name: Branch1
  actions:
  - functionRef:
      refName: functionNameOne
      arguments:
        order: "${ .someParam }"
- name: Branch2
  actions:
  - functionRef:
      refName: functionNameTwo
      arguments:
        order: "${ .someParam }"
end: true

在上例中,allOf 定义所有分支必须完成,然后状态可以过渡或结束。如果没有设置此参数,则这是默认值。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.