请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么扣除redis失败要加回来?

先不管消息发没发成功,我们是stock >= #{amount}才去扣,扣除失败那就是没有扣吧?为什么要加回来呢?不会加多了吗?

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

1回答

龙虾三少 2021-07-17 11:52:10

扣除成功下单或发消息失败才会去加redis

0 回复 有任何疑惑可以回复我~
  • 老师,最后else加的操作是对的吗?
    //这里是redis先减库存,如果redis减成功就做if,如果没有减成功就走else
    //如果redis发生错误没有减成功,那为什么还要再给它加库存 
     Long result = redisTemplate.opsForValue().increment("promo_item_stock_" + itemId, amount.intValue() * -1);
            if (result>=0) {
                //缓存更新库存成功
                //省略代码
            }else {
                //缓存更新库存失败
                redisTemplate.opsForValue().increment("promo_item_stock_" + itemId, amount.intValue());
                return false;
            }
    回复 有任何疑惑可以回复我~ 2021-08-19 16:12:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信