課程
/后端開發
/PHP
/PHP消息隊列實現及應用
老實, 幫忙問一個問題, 因為 消費隊列一直在執行過程中,當我添加了一個隊列后, 后臺立即消費了, 那前臺程序獲取隊列總數的時候就少了一個, 這個情況會出現嗎? 一般如何解決???
2019-09-21
源自:PHP消息隊列實現及應用 3-2
正在回答
視頻中采用for循環測試,這個是有序的,所以不會出現超賣現象;如果并發測試的話,會出現超賣現象;這里提供一個解決思路:活動前定義一個長度為10的list;利用lpop的原子性可以保障不會超賣;就是每次請求先lpop,如果可以獲取到值,表示秒殺成功;獲取不到說明已搶完。
可以通過設置一個const常量解決吧,常量初始值為0,有數據入隊時常量值++,通過判斷常量的值控制秒殺數量,這樣消費者消費隊列并不會影響統計秒殺數量
舉報
消息隊列是個什么玩意兒,使用隊列解決秒殺等實際問題概念和使用方法
1 回答redis秒殺
4 回答LPOP之后長度會變,會導致人數超過十個
4 回答這個秒殺架構是有問題的
3 回答秒殺邏輯問題
1 回答秒殺邏輯問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-01-05
視頻中采用for循環測試,這個是有序的,所以不會出現超賣現象;如果并發測試的話,會出現超賣現象;這里提供一個解決思路:活動前定義一個長度為10的list;利用lpop的原子性可以保障不會超賣;就是每次請求先lpop,如果可以獲取到值,表示秒殺成功;獲取不到說明已搶完。
2019-10-11
可以通過設置一個const常量解決吧,常量初始值為0,有數據入隊時常量值++,通過判斷常量的值控制秒殺數量,這樣消費者消費隊列并不會影響統計秒殺數量