采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,我看视频里举例,一个用户抓接口同时开两个任务去秒杀,视频里说req1和req2都没有秒杀到,为什么接下来就都去减库存了?
有两种情况可能会导致卖超:(1)一个用户同时发出了多个请求,如果库存足够,没加限制,用户就可以下多个订单。(2)减库存的sql上没有加库存数量的判断,并发的时候也会导致把库存减成负数。
我们的解决办法:
对于(1):前端加验证码,防止用户同时发出多个请求,在后端的miaosha_order表中,对user_id和goods_id加唯一索引,确保一个用户对一个商品绝对不会生成两个订单。
对于(2):我们的减库存的sql上应该加上库存数量的判断:update ** where *** and staock > 0。
你的问题我这边没法确认,也有可能是口误说错了
非常感谢!
老师,我根据你的方法实现后,货物数量是不会出现负数了,但是miaosha_order和 order_info里的记录会超过10条,我应该去查看哪些地方去排错啊?
在6-5视频里有讲是什么原因和解决方法
登录后可查看更多问答,登录/注册
各种缓存/JSR303参数检
1.3k 17
1.4k 17
1.1k 17
1.1k 16
1.1k 13