库存问题
来源:14-6 部署pay项目

回到过去丶
2020-04-07
我想问一下,我们这个系统创建订单就会有库存减少,但如果订单取消的话,我看到库存也没有回滚,这一步要怎么去做啊。
写回答
2回答
-
助理的回答显然没有get到楼主的提问点,分布式锁是为了防止库存超卖,而不是库存回滚
那么在用户取消订单之后进行库存回滚呢?
1- MQ,用户取消订单,MQ -> push 该订单取消操作 -> 监听器收到该取消订单的消息进行库存回滚
利用MQ效率较高,解耦,只管发,不管下游处理如何
2- Redis的pub/sub机制,如果量不多,可以用这个,其实redis也可以封装成一个MQ的
3- 用户点击取消,调用回滚方法即可,这个回滚库存方法自己写,就是mysql的CRUD
4- 还有种情况就是,不是用户主动取消订单,比如用户没有支付,半小时内自动取消,这个更简单了,定时任务轮询,order表里面有两个字段,一个是创建时间,另外一个是是否支付,时间用来比较是否超过半小时,是否支付判断是否进行库存回滚操作,定时任务框架可以采用 xxl-job或者 elastic-job
012020-04-29 -
廖师兄助理
2020-04-14
可以采用分布式锁来处理
00
相似问题