活动超时
活动超时用于限制活动执行与排队时间。官方建议根据业务 SLO 设计超时, 再配合重试策略控制总耗时。
常用超时类型
StartToCloseTimeout
单次活动尝试从开始到结束的最长时间。大多数场景建议至少配置该值。
ScheduleToCloseTimeout
从调度到最终完成(含重试)的总时间上限,用于限制整体重试预算。
ScheduleToStartTimeout
任务从入队到被 Worker 拉取的最大等待时间,常用于发现队列拥塞。
HeartbeatTimeout
长运行活动必须定期心跳,否则会超时并触发重试或失败。
配置示例(Go)
ActivityOptions.goGo
ao := workflow.ActivityOptions{
StartToCloseTimeout: 20 * time.Second,
ScheduleToCloseTimeout: 2 * time.Minute,
ScheduleToStartTimeout: 15 * time.Second,
HeartbeatTimeout: 10 * time.Second,
}
ctx = workflow.WithActivityOptions(ctx, ao)