Parallel¶
Parallel CRD 提供了一种简单的方法来定义分支列表,每个分支接收发送到 Parallel 入口通道的相同 CloudEvent。通常,每个分支都包含一个过滤函数来保护分支的执行。
Parallel 在后台创建 `Channel` 和 `Subscription`。
用法¶
Parallel Spec¶
Parallel 的 Spec 有三个部分
- `branches` 定义了 `filter` 和 `subscriber` 对的列表,每个分支一个,以及可选的 `reply` 对象。对于每个分支
- (可选) `filter` 会被评估,当它返回一个事件时,`subscriber` 会被执行。`filter` 和 `subscriber` 都必须是 `Addressable`。
- `subscriber` 返回的事件将被发送到分支 `reply` 对象。当 `reply` 为空时,事件将被发送到 `spec.reply` 对象。
- (可选) `channelTemplate` 定义了用于创建 `Channel` 的模板。
- (可选) `reply` 定义了在分支没有自己的 `reply` 对象时将每个分支的结果发送到哪里。
Parallel Status¶
Parallel 的 Status 有三个部分
- `conditions` 详细说明了 Parallel 对象的整体状态
- `ingressChannelStatus` 和 `branchesStatuses` 传达了作为 Parallel 的一部分创建的底层 `Channel` 和 `Subscription` 资源的状态。
- `address` 是公开的,以便 Parallel 可以用在可以使用 Addressable 的地方。发送到该地址将定位到位于 Parallel 前面的 `Channel`(与 `ingressChannelStatus` 相同)。
示例¶
通过遵循以下内容,了解如何使用 Parallel 代码示例.