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