​为什么每次秒杀次数都达不到50次

​为什么每次秒杀次数都达不到50次

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2019-12-04 17:03:34

同学,你好。

1、当其他事务修改了watch的数据后,本事务因为未能正常execute,所以事务中关于修改秒杀商品数量的操作不会被提交执行,因此不会造成秒杀商品数量的减少。

2、线程池的任务是并发执行的,当并发往数据库里写数据时, 会出现数据存储不成功的情况

3、同学可以增加线程池数量或更换数据库后多尝试几次。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 我也出现了不足50的情况,解决了,谢谢老师。还一个问题就是为什么最后模拟抢购要写成for i in range(1000)呢,不是50次抢购吗,for i in range(50)不行吗
    2020-02-08 22:23:54
  • 同学,你好。这里的循环模拟的是1000个人去抢购50个商品。多人抢少量的商品才可以更好的体现出秒杀效果。祝学习愉快~~~~
    2020-02-09 16:28:41
  • 但是这个循环里面应该是每循环一次都会有一次抢购成功的结果写入redis吧,每次submit这个抢购函数的时候都会产生一个结果对吧?所以循环的前50次就已经抢购结束了吧
    2020-02-09 21:36:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师