超级文档
幂等说明
登录
免费注册 / 登录

幂等说明

编写人:刘洋
系统:行政协同平台
版本:v1.2.4,预占在预发
日期:0000-00-00
状态:三类写操作已有幂等

一、目的

员工网络抖动时会再次点击提交。行政协同平台对预订、请假、用品申领约定:同一意图只保留第一笔成功单据。重复请求返回已有单号,库存和会议室占用不增加第二次。总部 420 人使用这三类提交。通知上的 eventId 去重另有发送规则,本文只写业务单据。

二、键的组成

预订的「永久」指同一员工不能对同一房间同一开始时间再插一条,第二人订同一时段会被拒绝,那是冲突而不是同一人的重复点击。请假的 Idempotency-Key 由网页在第一次点击时生成,刷新页面会换新键,因此刷新后的再次提交会变成新单,页面在提交成功前禁止刷新按钮。

三、用品预占

预发的申领在 10 分钟内重复点击只保留一笔预占。9月27日王芳对签字笔连点两次,两次都返回 SL-0000-040,可申领数量只减 1。窗口过后再点会新开一笔。最后 1 件被两人同时预占的情况靠库存条件更新,不靠这把幂等键,因为两名员工的键不同。那条并发缺陷的复测仍定在 9月28日。

四、验证与失效

  1. 键对应的单据如果被驳回或释放,窗口内再次提交仍返回原单号,员工要等窗口结束才能新开。
  2. 王芳的用例 TC-04 覆盖申领连点,9月27日通过。
  3. 请假连点用例每晚跑 1 次,9月20日结果是两次同一单号 LV-0000-086。
  4. 键只存在服务端。日志里可按单号反查,不把完整键打印到信息级日志。

陈静于 9月20日抽了 20 条创建日志,都能用单号找到员工,日志中没有第二套密钥材料。新的写接口要先补上表中的一行,再进入开发。9月20日生产重复提交的拦截次数是 17 次,其中预订 11 次、请假 6 次,全部返回了已有单号,没有多占会议室,也没有多写请假。