测试checkLocalTransaction遇到的bug

来源:8-5 库存流水状态(3)

PiedLife

2019-06-16

老师,我在OrderServiceImpl中让线程sleep80秒,模拟checkLocalTransaction回调功能时,mysql中库存被会多减一件,完成一次完整下单,redis中库存正常减1,mysql中库存会减2。
debug运行,发现MqConsumer中itemStockDOMapper.decreaseStock减库存只运行一次,代码应该没问题,也没在其他java文件中找到itemStockDOMapper.decreaseStock这种可能造成mysql库存减1的相关代码。
如果去掉sleep80秒相关代码,redis和mysql中库存都正常减1. 这种情况可能的原因是什么?因为rocketmq中有积压的消息吗?还是课程中提供的代码有这种bug?

写回答

2回答

冲哥_

2020-06-13

遇到了同样的问题,同学最后找到原因了么

0
0

龙虾三少

2019-06-17

断点设置在真正减库存的地方 看下为什么会减两次

0
0

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2174 学习 · 1009 问题

查看课程