5.4 - 异步 Activity 完成
如何使用 Temporal Python SDK 异步完成 Activity。
异步 Activity 完成支持 Activity 函数在 Activity 执行尚未完成的情况下提前返回。
需要遵循以下三个步骤:
- Activity 向外部系统提供完成 Activity 执行所需的标识信息。标识信息可以是任务令牌(Task Token),也可以是命名空间(Namespace)、工作流 ID(Workflow Id)和 Activity ID(Activity Id)的组合。
- Activity 函数以某种方式完成,表明它正在等待外部系统完成执行。
- 使用 Temporal 客户端发送心跳,及完成 Activity。
要将 Activity 标记为异步完成,需要在 Activity 内部执行以下操作:
# Capture token for later completion
captured_token = activity.info().task_token
activity.raise_complete_async()要在 Activity 外部更新 Activity,需使用 get_async_activity_handle() 方法获取 Activity 句柄。
handle = my_client.get_async_activity_handle(task_token=captured_token)然后,在该句柄上调用 heartbeat、complete、fail 或 report_cancellation 方法,更新 Activity。
await handle.complete("Completion value.")