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 状态完成其执行,并过渡到下一个定义的工作流状态;如果是最终状态,则完成工作流执行。