将Redis分布式锁集成到项目中 进行测试出现的问题,暂未定位到原因

来源:34-8 集成redis分布式锁到库存服务

gogogo_lang

2021-12-28

库存服务 扣减的代码如下
图片描述

多线程测试扣减单个商品 结果正确
图片描述

错线程测试扣减多个商品信息
(已手动将数据库商品库存数量更改为100)
图片描述

第二次执行结果 有误,
商品ID :1 只扣减10 期望减20
商品ID :2 只扣减20 期望减40
根据代码查看 拿到锁 保存数据后才释放锁。
出现其他线程未扣减成功的原因可能是什么呢?

写回答

1回答

bobby

2021-12-30

有没有尝试过debug单步调试或者,你这里的分布式锁是自己实现的还是使用现有的?

0
5
bobby
对多商品进行库存扣减的时候 需要先按照商品的id排序然后按照排序顺序逐个扣减库存
2022-07-02
共5条回复

Go+Python打造电商系统 自研微服务框架 抓紧高薪机遇

快速转型Go工程师,成为具备双语言后端能力的开发者

508 学习 · 530 问题

查看课程