Temporal Go SDK 动手练习
本目录包含一系列渐进式的练习,帮助您掌握 Temporal Go SDK 开发。
练习列表
01-workflow-basics - 工作流基础
学习内容:
- 创建简单的 Workflow
- 配置 Activity 选项
- 处理 Workflow 返回值
- 理解 Workflow 上下文
运行:
bash
make run-01
# 或
go run ./01-workflow-basics/main.go02-activity-patterns - Activity 模式
学习内容:
- 单个 Activity 调用
- 多个 Activity 顺序执行
- 多个 Activity 并行执行
- Activity 本地重试
运行:
bash
make run-02
# 或
go run ./02-activity-patterns/main.go03-error-handling - 错误处理
学习内容:
- Activity 错误处理
- 自定义错误类型
- 重试策略配置
- 超时处理
运行:
bash
make run-03
# 或
go run ./03-error-handling/main.go04-signals-queries - 信号与查询
学习内容:
- 发送信号到 Workflow
- 查询 Workflow 状态
- 使用选择器处理多个信号
- 更新 Workflow 状态
运行:
bash
make run-04
# 或
go run ./04-signals-queries/main.go环境要求
Go 1.21+
Temporal 服务器(任选一种):
方式一:Docker(推荐)
bashdocker run -d --name temporal -p 7233:7233 temporalio/auto-setup:latest方式二:本地开发服务器
bashgo install github.com/temporalio/cli@latest temporal server start-devTemporal Web UI(可选):
bashdocker run -d --name temporal-ui -p 8080:8080 --link temporal temporalio/ui:latest
快速开始
初始化依赖:
bashcd hands-on go mod tidy启动 Temporal 服务器
选择一个练习运行:
bashmake run-01 # 工作流基础 make run-02 # Activity 模式 make run-03 # 错误处理 make run-04 # 信号与查询
练习说明
每个练习目录包含一个完整的示例程序。建议学习顺序:
- 阅读代码:先理解每个练习的代码结构
- 运行程序:执行程序观察输出
- 修改代码:尝试修改参数和逻辑
- 查看 UI:在 Temporal Web UI 中查看工作流执行情况
- 实验错误:故意引入错误观察错误处理行为
常见问题
Q: 连接不上 Temporal 服务器?
确保 Temporal 服务器正在运行:
bash
# 检查 Docker 容器状态
docker ps | grep temporal
# 或检查本地服务器
temporal server start-devQ: 找不到 Task Queue?
确保 Worker 和 Starter 使用相同的 Task Queue 名称。
Q: Workflow 执行卡住?
检查:
- Worker 是否正在运行
- Task Queue 名称是否匹配
- Temporal 服务器是否正常