库存问题

来源:14-6 部署pay项目

回到过去丶

2020-04-07

我想问一下,我们这个系统创建订单就会有库存减少,但如果订单取消的话,我看到库存也没有回滚,这一步要怎么去做啊。

写回答

2回答

小麻雀呀

2020-04-28

助理的回答显然没有get到楼主的提问点,分布式锁是为了防止库存超卖,而不是库存回滚

那么在用户取消订单之后进行库存回滚呢?

1- MQ,用户取消订单,MQ -> push 该订单取消操作 -> 监听器收到该取消订单的消息进行库存回滚

利用MQ效率较高,解耦,只管发,不管下游处理如何

2- Redis的pub/sub机制,如果量不多,可以用这个,其实redis也可以封装成一个MQ的

3- 用户点击取消,调用回滚方法即可,这个回滚库存方法自己写,就是mysql的CRUD

4- 还有种情况就是,不是用户主动取消订单,比如用户没有支付,半小时内自动取消,这个更简单了,定时任务轮询,order表里面有两个字段,一个是创建时间,另外一个是是否支付,时间用来比较是否超过半小时,是否支付判断是否进行库存回滚操作,定时任务框架可以采用 xxl-job或者 elastic-job

0
1
回到过去丶
非常感谢!确实分布式锁做不了,那是秒杀的时候用的。后面也想到了用MQ去做
2020-04-29
共1条回复

廖师兄助理

2020-04-14

可以采用分布式锁来处理

0
0

实战支付+电商双系统 玩转Java技术栈

花一份课的价,收获:双系统实战+坐拥20K+粉的师兄指导,值~

2027 学习 · 1027 问题

查看课程