使用redis本身的原子性操作库储存。
//redis会返回操作之后的结果,这个过程是原子性的
LongcurrStock=redisTemplate.opsForHash().increment("key","stock",-1);
if(currStock<0){//说明库存已经扣减完了。
//业务异常。
log.error("[抢购下单]无库存");
}else{
//生成订单
//发布订单创建成功事件
//构建响应
}


使用redis本身的原子性操作库储存。
//redis会返回操作之后的结果,这个过程是原子性的
LongcurrStock=redisTemplate.opsForHash().increment("key","stock",-1);
if(currStock<0){//说明库存已经扣减完了。
//业务异常。
log.error("[抢购下单]无库存");
}else{
//生成订单
//发布订单创建成功事件
//构建响应
}
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。