两个不同的账户登录两个浏览器,导入同样的excel表格。数据出现重复
1.场景:
两个不同的账户登录两个浏览器,导入同样的excel表格。业务逻辑已经有验重校验,但数据仍然出现重复,锁定是并发问题导致。
2.参考博客:
https://cloud.tencent.com/developer/article/1354441 synchronized锁处理spring事务高并发请求
https://blog.csdn.net/u011974797/article/details/94459700 关于service层加synchronized关键字的坑
https://www.cnblogs.com/weixuqin/p/11429005.html synchronized(修饰方法和代码块)
https://www.cnblogs.com/dream-to-pku/p/6296608.html synchronized同步语句块
3.原因解析:
好多用户同时请求同一个controller请求,而且用户传的都是同样的数据。虽然controller中有对数据重复校验,但是因为多个线程同时进行,无法数据验重;
因为每个线程同时进行,数据验重其实都是还没有重复的,只有线程一个一个进行,才会保证上一个线程完了,下一个线程对最新的数据进行验重。