关于减库存的并发问题

来源:6-6 买家订单-service创建_D

土豆咬土豆

2020-03-31

        Integer result = productInfo.getProductStock() - cartDTO.getProductQuantity();
        if (result < 0) {
            throw new SellException(ResultEnum.PRODUCT_STOCK_ERROR);
        }

        productInfo.setProductStock(result);

        repository.save(productInfo);
    }
}

老师好,我想问问这一段是不是会存在并发问题,假设商品库存为1,购买数量为1,两个事务同时查到库存为1的情况,这时候两个事物的result都为0,实际应该有一个为-1了,这样是否存在两个订单都下单成功 但实际库存只有1的情况出现

写回答

1回答

廖师兄

2020-03-31

你问的非常对,是会出现这样的问题。课程最后有分布式锁的内容

0
0

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程