请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

超卖问题

老师,我看视频里举例,一个用户抓接口同时开两个任务去秒杀,视频里说req1和req2都没有秒杀到,为什么接下来就都去减库存了?

正在回答

1回答

有两种情况可能会导致卖超:(1)一个用户同时发出了多个请求,如果库存足够,没加限制,用户就可以下多个订单。(2)减库存的sql上没有加库存数量的判断,并发的时候也会导致把库存减成负数。

我们的解决办法:

对于(1):前端加验证码,防止用户同时发出多个请求,在后端的miaosha_order表中,对user_id和goods_id加唯一索引,确保一个用户对一个商品绝对不会生成两个订单。

对于(2):我们的减库存的sql上应该加上库存数量的判断:update **  where ***  and staock > 0。

你的问题我这边没法确认,也有可能是口误说错了



3 回复 有任何疑惑可以回复我~
  • 提问者 慕粉1462372119 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-01-31 13:45:31
  • 提问者 慕粉1462372119 #2
    老师,我根据你的方法实现后,货物数量是不会出现负数了,但是miaosha_order和 order_info里的记录会超过10条,我应该去查看哪些地方去排错啊?
    回复 有任何疑惑可以回复我~ 2018-01-31 14:13:56
  • 提问者 慕粉1462372119 #3
    在6-5视频里有讲是什么原因和解决方法
    回复 有任何疑惑可以回复我~ 2018-02-01 09:31:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信