6.2. 回调


Callback 状态执行一个操作,并等待作为操作结果生成的事件,然后再恢复工作流。通过回调状态执行的操作是异步外部服务调用。因此,回调状态适合执行 fire&wait-for-result 操作。

从工作流的角度来看,异步服务表示控制立即返回到调用者,而不必等待操作完成。操作完成后,会发布 CloudEvent 来恢复工作流。

JSON 格式的回调状态示例

{
        "name": "CheckCredit",
        "type": "callback",
        "action": {
            "functionRef": {
                "refName": "callCreditCheckMicroservice",
                "arguments": {
                    "customer": "${ .customer }"
                }
            }
        },
        "eventRef": "CreditCheckCompletedEvent",
        "timeouts": {
          "stateExecTimeout": "PT15M"
        },
        "transition": "EvaluateDecision"
}

YAML 格式的回调状态示例

name: CheckCredit
type: callback
action:
  functionRef:
    refName: callCreditCheckMicroservice
    arguments:
      customer: "${ .customer }"
eventRef: CreditCheckCompletedEvent
timeouts:
  stateExecTimeout: PT15M
transition: EvaluateDecision

action 属性定义触发外部活动或服务的函数调用。在操作执行后,Callback 状态将等待 CloudEvent,这表示调用的服务完成手动决策。

收到完成回调事件后,Callback 状态完成其执行,并过渡到下一个定义的工作流状态;如果是最终状态,则完成工作流执行。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.