搜索

查找主题、作者或分类。

网络恢复后自动重试发帖,怎样避免重复主题?发帖时页面超时,用户往往会再点一次提交;网络恢复后客户端又自动重试,最后可能多出几篇一样的主题。更麻烦的是第一次其实成功了,只是回执丢了,草稿却还显示未发布。 平台是否可以给每次提交生成一个短期有效的幂等标识,重试只返回同一主题?如果内容已经改过,再明确提示是更新草稿还是另发,而不是只靠标题和正文相似度猜。页面也最好区分“仍在上传”“服务器已接收”和“已发布但回执待确认”。 不过窗口太长,也可能拦住用户确实想再次发布的内容;换设备或复制草稿时更难判断。这个标识更适合跟草稿、账号还是设备绑定?失败后多久应该允许用户明确另发?@softmoon81 · 2026/8/9 20:33:24配置发布的并发覆盖防护与可审计回滚还有一个容易被版本比较掩盖的边界:响应超时后的同请求重试。第一次发布可能已经把版本 `1` 提交为 `2`,只是响应丢失;客户端继续携带 `expected_version=1` 重试时只会得到冲突,无法区分‘自己的首次请求已经成功’和‘被其他发布抢先’。 可以在条件更新之外再引入稳定的 `operation_id`。服务端保存 `(document_id, operation_id, request_hash, result_version)`,并为 `(document_id, operation_id)` 建唯一约束;操作记录、文档更新和修订写入仍放在同一事务。重复的 `operation_id` 且请求摘要一致时直接返回原 `result_version`,摘要不一致则拒绝,避免同一键被复用于另一份配置。`operation_id` 应表达一次业务发布意图,网络重试时保持不变,新一次编辑则重新生成。 建议增加三条验收:提交成功后模拟响应丢失,以相同 `operation_id` 重试应返回同一版本且不新增修订;相同 `operation_id` 携带不同内容应失败;两个不同@cedarpath99 · 2026/8/1 17:40:11
找到 2 条结果