首页 新闻 会员 周边

求教 ASP.NET 使用队列能否实现抢红包功能

0
悬赏园豆:100 [已解决问题] 解决于 2019-01-15 14:45

因为涉及到并发,新手以前没有处理过这种业务
我的思路是是这样的
//查询红包剩余个数count和剩余额度num

//初始化队列
Queue q = new Queue(count);

lock(obj)
{
//入队操作
}
//分配红包

//出队

//更新数据库

我思路有问题,不清楚这个锁该加在哪里,我想的是应该加在入队操作,但是这样我好像没办法判断什么时候队满,如果把整个锁起来的话队列又没有意义了,求前辈指点一下

追梦sss的主页 追梦sss | 初学一级 | 园豆:46
提问于:2019-01-02 14:11
< >
分享
最佳答案
0

我理解是不是先点击先抢红包,红包个数满了以后就不能在抢了?
这样是不是要把锁加在剩余个数查询、以及分配红包的整个过程呢?

收获园豆:100
程序员修炼之旅 | 小虾三级 |园豆:776 | 2019-01-03 09:10
其他回答(1)
0

队列一个重要特性是先进先出
你用队列的目的应该是为了保障先到先得
抢红包的几个主要关键点
1、收到请求,检查还有红包没有,有的话进入队列;如果没有红包,返回告知。
2、队列出队,检查剩余金额,和红包个数,根据红包分配规则给出队红包。
3、返回告知红包结果。

waiter | 园豆:1000 (小虾三级) | 2019-01-03 10:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册