团队冲刺5

第5天:领用出库 + 备件返还 — 逆向流程的边界处理
关键词:出库锁库 · 返还校验 · 逆向库存更新
领用出库
审核通过后进入出库环节。关键在于锁库操作——同一备件可能被多个申请人同时领取,必须防止库存不足还被出库。
设计了一个预占库存 + 正式扣减的机制:

  1. 审核通过时:预占库存(reserved_qty + 1)
  2. 出库操作时:正式扣减(stock_qty - 1, reserved_qty - 1)
  3. 如果超时未出库:预占库存自动释放(定时任务扫描)
    备件返还
    返还场景:领用的备件未使用完,需要退回仓库。核心难点是返还校验
  • 返还数量不能超过原领用数量
  • 备件状态是否完好(需要操作员确认)
  • 返还后库存恢复
    踩坑:Redis分布式锁的坑
    预占库存操作需要加分布式锁,一开始用的SETNX简单实现,出现了锁超时后其他线程获取锁并发操作的问题。
    解决:使用Redisson的RLock,自带看门狗机制(Watch Dog),业务没执行完自动续期,避免锁超时误释放。
posted @ 2026-06-18 20:30  河北肘击王  阅读(3)  评论(0)    收藏  举报