批量新增操作在業務系統中十分常見,尤其是主從表中對從表的批量處理。昨天在對wms主從表進行業務操作時使用了c#中list自帶的函數ForEach對從表批量新增,代碼如下:
在無並發的情況下接口請求正常
並發測試時.net core host 程序被意外終止:
測試結果表示第一次請求成功,第2、3次請求失敗導致程序終止。查看日志如下:
日志表明時ef core執行期間出了問題,查找解決方案如下:
再次並發執行結果:
雖然大部分執行成功但任有失敗的概率,再次查看失敗日志如下:
解決
棄用list自帶的ForEach函數,改用foreach:
200並發測試:
並發請求全部成功,數據庫三種從表條目一致: