在併發時減庫存不能簡單地通過
update(['stock' => stock - $amount])
來操作,在高併發的情況下會有問題。
$amount = $data['amount '];
update product set stock = stock - $amount where id = $id and stock >= $amount
這樣可以保證不會出現執行之後 stock 值爲負數的情況,也就避免了超賣的問題。根據返回的受影響行數來判斷是否執行成功。
在併發時減庫存不能簡單地通過
update(['stock' => stock - $amount])
來操作,在高併發的情況下會有問題。
$amount = $data['amount '];
update product set stock = stock - $amount where id = $id and stock >= $amount
這樣可以保證不會出現執行之後 stock 值爲負數的情況,也就避免了超賣的問題。根據返回的受影響行數來判斷是否執行成功。
01 背 景 播放鏈路是愛奇藝最重要的業務,鏈路穩定性極其重要,隨着愛奇藝用戶的不斷增長和熱播劇集的推廣,播放鏈路往往面臨着難以預估的用戶流量的突增,考