批量新增操作在业务系统中十分常见,尤其是主从表中对从表的批量处理。昨天在对wms主从表进行业务操作时使用了c#中list自带的函数ForEach对从表批量新增,代码如下:
在无并发的情况下接口请求正常
并发测试时.net core host 程序被意外终止:
测试结果表示第一次请求成功,第2、3次请求失败导致程序终止。查看日志如下:
日志表明时ef core执行期间出了问题,查找解决方案如下:
再次并发执行结果:
虽然大部分执行成功但任有失败的概率,再次查看失败日志如下:
解决
弃用list自带的ForEach函数,改用foreach:
200并发测试:
并发请求全部成功,数据库三种从表条目一致: