6.2. Callback
Callback の状態ではアクションが実行され、アクションの結果として生成されるイベントを待ってから、ワークフローを再開します。Callback の状態によって実行されるアクションは、非同期外部サービス呼び出しです。したがって、Callback の状態は、fire&wait-for-result 演算を実行するのに適しています。
ワークフローの観点から見ると、非同期サービスは、アクションが完了するのを待たずに制御が呼び出し元に直ちに返されることを示します。アクションが完了すると、CloudEvent が公開されてワークフローが再開されます。
JSON 形式の Callback 状態の例
{
"name": "CheckCredit",
"type": "callback",
"action": {
"functionRef": {
"refName": "callCreditCheckMicroservice",
"arguments": {
"customer": "${ .customer }"
}
}
},
"eventRef": "CreditCheckCompletedEvent",
"timeouts": {
"stateExecTimeout": "PT15M"
},
"transition": "EvaluateDecision"
}
YAML 形式の Callback 状態の例
name: CheckCredit
type: callback
action:
functionRef:
refName: callCreditCheckMicroservice
arguments:
customer: "${ .customer }"
eventRef: CreditCheckCompletedEvent
timeouts:
stateExecTimeout: PT15M
transition: EvaluateDecision
action プロパティーは、外部アクティビティーまたはサービスをトリガーする関数呼び出しを定義します。アクションが実行されると、状態が Callback の場合、呼び出されたサービスによる手動での決定が完了したことを示す CloudEvent になるまで待機します。
完了コールバックイベントを受信すると、Callback の状態は実行を完了し、次の定義されたワークフロー状態に遷移するか、終了状態の場合はワークフローの実行を完了します。