Temporal(2.2万星)2026:可靠工作流的持久化执行——完整指南
Temporal(22,126星)让你的工作流获得持久化执行能力:崩溃、重试、超时自动处理。本文教你构建第一个持久化工作流。
💡 你将学到
Temporal(22,126星)让你的工作流获得持久化执行能力:崩溃、重试、超时自动处理。本文教你构建第一个持久化工作流。
直接给结论
temporalio/temporal(22,126星,Go)是一个持久化执行平台。你的工作流代码即使进程中途崩溃也能完整跑完——Temporal记录每一步,从失败的确切位置恢复。这使它成为支付流程、订单处理和长时业务流程的首选。
为什么持久化执行重要
- 防崩溃:进程或机器故障后工作流自动恢复
- 确定性重试:活动自动指数退避重试
- 超时与心跳:检测卡住的步骤并快速失败
- 可视化:每个工作流状态都能在UI里查询
核心概念
| 概念 | 作用 |
|---|---|
| Workflow | 编排逻辑(持久化、确定性) |
| Activity | 副作用(API调用、DB写入),带重试 |
| Worker | 执行工作流和活动的进程 |
| Server | 存储工作流状态和历史 |
最小工作流(Python SDK)
pip install temporalio
from temporalio import activity, workflow
@activity.defn
async def charge_card(amount: float) -> str:
return f"charged {amount}"
@workflow.defn
class OrderWorkflow:
@workflow.run
async def run(self, amount: float) -> str:
return await workflow.execute_activity(
charge_card, amount, start_to_close_timeout=30
)
启动开发服务器(temporal server start-dev),然后启动worker并执行工作流——中途杀掉进程它也能恢复。
实用技巧
- 保持工作流确定性:工作流代码里不要有随机数和直接I/O——用activities。
- 每个activity都设
start_to_close_timeout,避免卡死。 - 用signals/queries从外部与运行中的工作流交互。
FAQ
免费吗? 是——MIT开源协议;Temporal Cloud是托管选项。
需要Kubernetes吗? 不需要——Docker或单个二进制即可运行;k8s可选。
什么时候用它而不是消息队列? 需要多步骤的重试、状态和可视化时用Temporal;简单即发即忘用普通队列。
相关文章
2026-06-29
高收益主线龙头策略——不花钱的数据,也能抓到龙头
2026-06-29
你笔记本里,藏着一个AI
2026-07-14
免费AI编程助手 2026 配置指南:VS Code 5分钟装 Continue、Copilot、Windsurf
