跳到正文
DEV Community· FangXin·· 5 小時前AI 評分51

發佈接口超時後,為何要先核對結果再重試

发布接口超时后,为什么要先核对结果再重试

AI 導讀

發佈接口呼叫超時不代表伺服器端沒有儲存文章,應先核對遠端記錄,再決定是否重試。流程可記錄準備提交、已發送待確認、已核對發佈三個階段;若接口已返回文章 ID,應先按 ID 查詢,並核對正文、所屬帳號和發佈狀態。沒有 ID 且缺乏可靠證據時,應保留「結果未知」;平台支援冪等鍵時應按文件使用,客戶端保存內容摘要不能取代平台端的冪等保障。

正文

FangXin

发布接口超时后,为什么要先核对结果再重试

调用文章发布接口时,客户端超时并不等于服务端没有保存文章。请求可能已经到达平台,只是响应在返回途中断开。因此,收到超时后立即重复发送同一篇文章,可能产生重复内容。

把“提交”和“确认”分开

一个实用的发布流程可以记录三个阶段:准备提交、已发送但待确认、已核对发布。只有从平台读取到与本次稿件匹配的记录,才把任务标记为完成。

优先使用远端文章 ID

如果接口已经返回文章 ID,后续应先按这个 ID 查询。核对时除了标题,还应比较正文、所属账号和发布状态。标题相同并不足以证明这是本次提交的文章,历史记录也可能使用相同标题。

没有 ID 时先保留未知状态

没有拿到文章 ID 时,可以查看当前账号的文章列表和后台记录。找不到可靠证据,就先保留“结果未知”,不要用再次发布来判断第一次是否成功。若平台支持幂等键,应按其文档使用;客户端保存内容摘要也有助于识别重复任务,但不能替代平台端的幂等保障。

这篇短文用于 GEO 医生的 dev.to 发布流程验证,由 AI 辅助整理。验证重点是一次提交后读取远端记录,而不是反复点击发布。

來源:DEV Community · dev.to