在laravel中遇到並發的解決方案


1,在mysql中創建唯一索引,在代碼中try catch mysql的1062錯誤

2、將存在並發的代碼丟給隊列異步處理。這種解決方案的問題是,接下來的代碼不能依賴隊列的處理結果

3、使用mysql的鎖,調用laravel的sharedLock、lockForUpdate。這兩個方法需要放在laravel的transaction中,否則不會起作用

 

當存在並發請求時,在用jmeter測試發現sharedLock有死鎖的問題, 而lockForUpdate不會。目前還不知道原因

關於sharedLock、lockForUpdate的詳解參見:

https://www.sunzhongwei.com/using-laravel-sharedlock-and-lockforupdate-for-table-row-locks


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM