New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
锁定库存的问题 #376
Comments
我也发现了这个bug,应该还要加个if判断当前购物车的数量和 stock-lock_stock是否充足 |
改为 |
库存那块没有处理,存在超卖风险 |
是的 超卖没有处理 |
下单库存锁定应该会有并发问题吧? |
这就是个demo |
是的,生成订单里面没考虑加锁问题,积分和优惠券一样的问题 |
就是个demo,实际生产用还不够。还只是单体服务,还没考虑事务。 |
的确,这项目里我也找不到关于超卖的处理方法,有的话麻烦告知一声。。 |
目前看项目中锁定库存的逻辑是这样的:
①在产生订单的逻辑中判断库存表中的stock真实库存是否为0,为0则下单失败,否则进行锁定库存对lock_stock字段加一
②在支付的过程对lock_stock和stock字段同时减一
问题:lock_stock字段貌似没有进行任何的逻辑处理,只是设置了一个字段?
这样的后果是,如果后台同时在一段时间下单担均没支付,均在5分钟后才付款,由于下单时只对lock_stock进行加一,并且没有任何逻辑,在5分钟后支付时会对stock和lock_stock减一,那么若此时产生的订单数大于stock数,依然能够进行支付,因为判断库存的逻辑只在生成订单的时候对stock的值进行了判断,那么此时stock就减到负值了
The text was updated successfully, but these errors were encountered: