课程
/后端开发
/PHP
/PHP消息队列实现及应用
老实, 帮忙问一个问题, 因为 消费队列一直在执行过程中,当我添加了一个队列后, 后台立即消费了, 那前台程序获取队列总数的时候就少了一个, 这个情况会出现吗? 一般如何解决啊?
2019-09-21
源自:PHP消息队列实现及应用 3-2
正在回答
视频中采用for循环测试,这个是有序的,所以不会出现超卖现象;如果并发测试的话,会出现超卖现象;这里提供一个解决思路:活动前定义一个长度为10的list;利用lpop的原子性可以保障不会超卖;就是每次请求先lpop,如果可以获取到值,表示秒杀成功;获取不到说明已抢完。
可以通过设置一个const常量解决吧,常量初始值为0,有数据入队时常量值++,通过判断常量的值控制秒杀数量,这样消费者消费队列并不会影响统计秒杀数量
举报
消息队列是个什么玩意儿,使用队列解决秒杀等实际问题概念和使用方法
4 回答LPOP之后长度会变,会导致人数超过十个
1 回答redis秒杀
4 回答这个秒杀架构是有问题的
1 回答秒杀逻辑问题
3 回答秒杀逻辑问题