标准答案

  1. 客户端提交幂等键,服务端按租户和操作范围保存请求结果或任务状态;相同幂等键返回原任务,不重复创建。
  2. 每层继承总 deadline 并设置更短的子超时,客户端断开触发取消信号;无法取消的下游动作转为查询状态,不假设已经停止。
  3. 所有重试都检查操作是否可重试、是否已产生副作用和剩余预算,状态更新使用条件版本或事务。

题目解析

幂等键要有作用域、有效期和请求摘要,防止同一个键被不同参数复用。命中时不能只返回 202,还要返回原任务的当前状态。

客户端断开不是业务取消的唯一信号:用户可能刷新页面但仍希望任务继续。产品要区分 disconnect、explicit cancel 和 deadline。

超时后请求状态可能未知。可靠系统会记录下游请求 ID,提供查询或对账流程,尤其是写操作和计费。

常见误区

  • 用用户 ID 作为幂等键,导致并发请求互相覆盖。
  • 超时后无条件重新发起模型或工具调用。
  • 客户端断开就删除服务端任务,无法恢复或审计。

作者信息