本地減庫存環節是否也存在并發問題?
今天面試遇到這么一個問題,在視頻所講的架構下,面試官提出這樣一個疑問:“本地減庫存環節一定也存在并發問題,能解決嗎?”。我的理解是請求并發過來,同時獲取本地已售數量self::$APCU_LOCAL_USE,那么apcu_inc(self::$APCU_LOCAL_USE);對于這些并發請求也都會得到相同的+1的結果,這樣實際上放過去的流量就不止100了,會存在這樣的可能嗎?是否有必要解決呢?請問該怎么解決呢?
今天面試遇到這么一個問題,在視頻所講的架構下,面試官提出這樣一個疑問:“本地減庫存環節一定也存在并發問題,能解決嗎?”。我的理解是請求并發過來,同時獲取本地已售數量self::$APCU_LOCAL_USE,那么apcu_inc(self::$APCU_LOCAL_USE);對于這些并發請求也都會得到相同的+1的結果,這樣實際上放過去的流量就不止100了,會存在這樣的可能嗎?是否有必要解決呢?請問該怎么解決呢?
2021-05-25
舉報
2021-07-14
這是個好問題,可以flock函數加一個非阻塞的文件鎖,搶到鎖的用戶去減本地庫存;