问题
已关闭 · 已解答

提交 Change Request 超时,怎么判断该不该重试?

wenting zhang

有个重试场景想请教:Agent 向 Busabase 提交变更后,网络超时,没拿到返回的 ID。请求可能已经到了服务端,直接重试又担心 Inbox 里出现两份相同的待审核变更。

这种情况有没有推荐的核对办法?能不能带一个自己生成的任务编号查回这次提交,或者让同一次提交的重试只产生一份变更?

举报
pengjin
团队

网络超时不代表提交失败:请求可能已经在服务端创建成功,只是返回结果没到 Agent。因此,不建议直接换一个任务编号再次提交。

Busabase 的记录类变更接口支持在请求体中传入 idempotencyKey(幂等键),用于避免同一次提交因重试产生重复的 Change Request:

  1. 首次提交前生成并保存幂等键。

可以使用自己的任务编号,例如 crm-import:task-123:batch-1,并保存对应请求内容。重试时保持同一 Base、同一提交身份、同一个键及相同内容,不要每次重新生成键。

  1. 首次已带键,超时后可用原请求重试。

如果第一次已经创建成功,服务端会返回原来的 Change Request,而不是再创建一份。拿到 ID 后,再核对它的实际状态;它可能仍在待审核,也可能已经合并。

  1. 首次没带键,先核对再重试。

在 Inbox 或变更请求列表中,结合目标 Base、提交人、时间、说明和具体操作查找,同时检查是否已有合并结果。待审核列表里没看到,并不能证明提交失败。 如果仍无法确认,先暂停重复提交;事后补一个幂等键,不能自动关联并去重首次无键的请求

举报

你的回复

登录后参与讨论。阅读始终开放,只有发帖和回复需要账号。

登录