用途:基于 Temporal.io 的持久化执行引擎,构建长时间运行、容错的分布式应用。适用场景包括跨天/周/月的业务流程、需要补偿回滚的 Saga 模式、带重试的微服务编排、要求精确一次执行保证的系统、含人工介入的复杂状态机,以及定时与周期性工作流。
主要能力:用 @workflow.defn / @workflow.run 定义工作流,用 @workflow.execute_activity 调用活动(Activity)执行实际 I/O;支持 start_to_close_timeout 与 RetryPolicy 重试策略、asyncio.gather 并行活动、@workflow.query 查询状态、@workflow.signal 发送取消等信号、workflow.wait_condition 配合 timeout 实现审批超时、activity.heartbeat 支持长操作心跳,以及用 WorkerEnvironment.start_local 做本地测试。
使用方式:先通过 Client.connect("localhost:7233") 连接服务,创建 Worker 并指定 task_queue、workflows、activities,再 await worker.run();启动工作流用 client.start_workflow(...),并用业务化且幂等的 id(如 order-{order_id})。工作流内必须使用确定性 API:随机用 await workflow.random(),时间用 workflow.now(),禁止直接写 random.random()、datetime.now() 或 httpx 网络调用,I/O 一律放入活动。活动需保证幂等(如以 order_id 为键做 upsert)。Saga 模式中用 compensations 列表记录补偿操作,失败时按逆序执行补偿。
限制:活动默认重试 3 次、指数退避;超过 60 秒的活动建议心跳;时间上多数场景用 start_to_close。资料未提供具体的收费、价格、平台支持范围和部署方式等事实。