猿问

直播送礼接口应该如何解决并发问题

在直播APP中有给主播送礼物这样一个场景,

大概的逻辑是:
1:判断用户礼物数量是否足够
2:如果够,则用户礼物数量-1,增加主播的威望

遇到的问题:
在用户刷礼物连击,快速点击送礼按钮的时候,通常会遇到这种情况,在判断礼物数量的时候,上一次送礼请求没有完成,这时候,用户礼物数量是够的,然后过了这个判断,上一次请求完成了,这时候仍要执行扣除礼物数量的操作,这时候,礼物数量就变成了负数了。

请问,这种情况该如何防止礼物数量出现负数的情况。

holdtom
浏览 698回答 4
4回答

跃然一笑

如果我是你 , 我会考虑直接上redis , 有时候单线程的东西还是有很大好处的 .其次 , 从你的应用场景出发 , 短时间多次点击 , 简直就是redis绝佳的用武之地 .泥 , 还在考虑什么 ?

幕布斯7119047

队列处理,并行转为串行,这个时候判断的礼物数量就是正确的

茅侃侃

这种情况后端应该用消息队列,或者加锁策略,前端可以在每次页面打开时就把余量请求过来,避免展示负数
随时随地看视频慕课网APP
我要回答