TemporalGoSDK技能Skill temporal-go

Temporal Go SDK 是 Temporal 平台的 Go 语言软件开发工具包,用于构建可扩展且容错的持久化工作流应用。它支持工作流编排、活动执行、错误处理、测试和云集成,关键词包括:Temporal, Go SDK, 工作流编排, 活动执行, 持久化执行, 测试, 云集成, 错误处理, 工作流测试。

后端开发 0 次安装 0 次浏览 更新于 3/20/2026

name: temporal-go description: Temporal Go SDK 专家,用于持久化工作流编排。当处理 Temporal 工作流、活动、工作者、workflow.Context、workflow.ExecuteActivity、temporal 客户端、任务队列、活动心跳、重试策略、工作流信号、查询、continue-as-new、工作流测试、TestWorkflowEnvironment、活动模拟、取消处理、工作流定时器或 Temporal Cloud mTLS/API 密钥配置时自动加载。

Temporal Go SDK

Temporal 是一个持久化执行平台,使应用程序代码容错且可扩展。工作流是普通的 Go 函数,在进程重启后依然存在;活动是产生副作用的执行单元。

核心 API 快速参考

工作流 API (go.temporal.io/sdk/workflow)

API 用途
workflow.ExecuteActivity(ctx, fn, args...) 调度活动执行
workflow.ExecuteChildWorkflow(ctx, fn, args...) 启动子工作流
workflow.Sleep(ctx, duration) 持久化定时器暂停
workflow.NewTimer(ctx, duration) 可取消的定时器 Future
workflow.Go(ctx, fn) 在工作流上下文中生成 goroutine
workflow.NewChannel(ctx) 创建工作流安全通道
workflow.NewSelector(ctx) 为竞态 futures 创建选择器
workflow.GetInfo(ctx) 获取当前工作流元数据
workflow.GetLogger(ctx) 获取回放安全日志器
workflow.Now(ctx) 获取确定性当前时间
workflow.NewContinueAsNewError(ctx, fn, args...) 继续为新工作流
workflow.SetQueryHandler(ctx, name, fn) 注册查询处理器
workflow.SetUpdateHandler(ctx, name, fn, opts) 注册更新处理器

活动 API (go.temporal.io/sdk/activity)

API 用途
activity.GetInfo(ctx) 获取活动元数据(任务令牌等)
activity.RecordHeartbeat(ctx, details...) 发送心跳并检查取消
activity.HasHeartbeatDetails(ctx) 检查先前尝试是否留下详情
activity.GetHeartbeatDetails(ctx, &out) 重试后恢复心跳详情
activity.ErrResultPending 返回以异步完成活动

客户端 API (go.temporal.io/sdk/client)

API 用途
client.Dial(options) 创建 Temporal 客户端
c.ExecuteWorkflow(ctx, opts, fn, args...) 启动工作流
c.GetWorkflow(ctx, workflowID, runID) 获取现有工作流句柄
c.CancelWorkflow(ctx, workflowID, runID) 请求工作流取消
c.TerminateWorkflow(ctx, workflowID, runID, reason) 强制终止
c.SignalWorkflow(ctx, workflowID, runID, name, arg) 发送信号
c.QueryWorkflow(ctx, workflowID, runID, name, args...) 查询工作流状态
c.CompleteActivity(ctx, taskToken, result, err) 异步活动完成
run.GetID() 从运行中获取工作流 ID
run.Get(ctx, &result) 阻塞直到工作流完成

工作者和测试 API (go.temporal.io/sdk/worker, go.temporal.io/sdk/testsuite)

API 用途
worker.New(c, taskQueue, opts) 创建新工作者
w.RegisterWorkflow(fn) 注册工作流函数
w.RegisterActivity(fn) 注册活动函数或结构
w.Run(stopCh) 启动工作者(阻塞直到停止)
testsuite.WorkflowTestSuite 嵌入测试结构以创建测试环境
env.ExecuteWorkflow(fn, args...) 在测试环境中运行工作流
env.OnActivity(fn, args...).Return(...) 模拟活动返回值
env.RegisterDelayedCallback(d, fn) 在测试执行期间触发回调
worker.NewWorkflowReplayer() 重放工作流历史以调试

架构

应用程序代码
      │  执行工作流 / 信号工作流 / 查询工作流
      ▼
┌─────────────────────┐
│  Temporal 客户端     │  go.temporal.io/sdk/client
│  (SDK)               │
└────────┬────────────┘
         │  gRPC
         ▼
┌─────────────────────┐
│  Temporal 服务器     │  localhost:7233 / Temporal Cloud
│  (服务)           │
└────────┬────────────┘
         │  任务队列轮询
         ▼
┌─────────────────────┐
│  工作者              │  go.temporal.io/sdk/worker
│  (托管工作流和活动)  │
└─────────────────────┘

参考

  • 核心应用 — SDK 安装、工作流、活动、工作者、动态注册
  • Temporal 客户端 — 客户端创建、云连接(mTLS/API 密钥)、启动工作流
  • 命名空间 — 注册、更新、描述、列出、删除命名空间
  • 测试套件 — TestWorkflowEnvironment、活动模拟、时间跳过、重放
  • 故障检测 — 超时、重试策略、心跳、自定义重试延迟
  • 取消 — 工作流/活动取消模式
  • 异步活动完成 — 通过任务令牌的外部完成
  • UI 元数据 — StaticSummary、SetCurrentDetails、定时器/活动摘要
  • 定时器 — 持久化定时器、workflow.Sleep、workflow.NewTimer
  • 调试 — 死锁检测、TEMPORAL_DEBUG、重放调试
  • 继续为新工作流 — 事件历史管理、状态传递