程序會不會有超過 秒殺數(shù)量的情況出現(xiàn)???
老實(shí), 幫忙問一個(gè)問題, 因?yàn)?消費(fèi)隊(duì)列一直在執(zhí)行過程中,當(dāng)我添加了一個(gè)隊(duì)列后, 后臺立即消費(fèi)了, 那前臺程序獲取隊(duì)列總數(shù)的時(shí)候就少了一個(gè), 這個(gè)情況會出現(xiàn)嗎? 一般如何解決???
老實(shí), 幫忙問一個(gè)問題, 因?yàn)?消費(fèi)隊(duì)列一直在執(zhí)行過程中,當(dāng)我添加了一個(gè)隊(duì)列后, 后臺立即消費(fèi)了, 那前臺程序獲取隊(duì)列總數(shù)的時(shí)候就少了一個(gè), 這個(gè)情況會出現(xiàn)嗎? 一般如何解決???
2019-09-21
舉報(bào)
2020-01-05
視頻中采用for循環(huán)測試,這個(gè)是有序的,所以不會出現(xiàn)超賣現(xiàn)象;如果并發(fā)測試的話,會出現(xiàn)超賣現(xiàn)象;這里提供一個(gè)解決思路:活動前定義一個(gè)長度為10的list;利用lpop的原子性可以保障不會超賣;就是每次請求先lpop,如果可以獲取到值,表示秒殺成功;獲取不到說明已搶完。
2019-10-11
可以通過設(shè)置一個(gè)const常量解決吧,常量初始值為0,有數(shù)據(jù)入隊(duì)時(shí)常量值++,通過判斷常量的值控制秒殺數(shù)量,這樣消費(fèi)者消費(fèi)隊(duì)列并不會影響統(tǒng)計(jì)秒殺數(shù)量