订单库存回补方案与实现思路

一、思路

1.如何回补?记录需要回补的数据,进行回补。

2.记录什么数据?单出入库分为两个阶段:A.订单解析获取要扣减的库存。B.扣减库存。所以我们按这两个阶段,分两种类型数据:订单数据/库存修改数据

3.如何记录?A阶段失败则记录订单数据,B阶段失败则记录库存修改数据

4.如何回补?查询不同类型的待回补数据,进行回补。

5.回补失败怎么办?回补失败则重试一次

6.如果仍然失败呢?仍然失败则说明数据异常,不再尝试回补。留待开发人员观察数据原因

 

二、实现

A阶段

1.如订单解析阶段失败,或者希望直接添加到回补记录中不再处理,保存数据。类型为【订单出入库】,状态为【失败状态】或【待回补状态】

2.通过利用监听器等方式,不断轮训查询回补记录中的待回补【订单数据】

3.转换订单数据格式,并调用订单出入库服务,进行消费

4.如回补阶段失败一次后,更新该回补记录为【失败状态】,并等待下次再次尝试回补

5.如再次失败,则不再回补。并将该记录标记为【异常状态】,不再尝试回补,由开发人员观察失败原因

 

B阶段

1.如库存修改失败,保存数据,类型为【库存修改】。状态为【失败状态】

2.查询回补记录中,类型为【库存修改】,状态为【失败状态】的数据

3.尝试重新修改库存。

4.如再次失败,则更新该记录状态为【异常状态】,不再尝试回补。由开发人员观察失败原因

 

流程图如下:
 

 

三、总结

订单回补是一种思想,我们可以利用该方案,用于不同场景,如削峰限流、异步扣减等场景中。目前这种方案是结合自己实际中遇到的情景所设计的。如果有不足或者错误之处,或者与你的需求场景不符合甚至更复杂,欢迎留言沟通交流~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值