两个不同的账户登录两个浏览器,导入同样的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中有对数据重复校验,但是因为多个线程同时进行,无法数据验重;
因为每个线程同时进行,数据验重其实都是还没有重复的,只有线程一个一个进行,才会保证上一个线程完了,下一个线程对最新的数据进行验重。
两个不同的账户登录两个浏览器,导入同样的excel表格。数据出现重复的更多相关文章
- 【PHP】导入、导出Excel表格(有使用PHPExcel和不使用的两个版本)
------------ 首先,导出excel ---------------- 一.不使用PHPExcel的版本,很简单的一个方法,简洁.推荐 很简单的导出一个exc ...
- linux尝试登录失败后锁定用户账户的两种方法
linux尝试登录失败后锁定用户账户的两种方法 更新时间:2017年06月23日 08:44:31 作者:Carey 我要评论 这篇文章主要给大家分享了linux尝试登录失败后锁定用户账 ...
- 克隆虚拟机以及两台linux机器相互登录:linux学习第四篇
克隆虚拟机 1. 克隆 之后自己命名克隆的虚拟机并自己选择存放位置,完成克隆 2. 克隆虚拟机之后对新的虚拟机修改网络配置,以免冲突(将配置文件里的UUID去掉,并修改IP地址) ...
- 症状解决,原因不详的用非默认管理权限账户登录COM注册成功但找不到类型问题
http://social.msdn.microsoft.com/Forums/en-US/11f01ceb-52a4-438f-b7ef-727ce7a3e191/atl-project-in-vs ...
- ubuntu12.04管理员账户登录不了桌面,只能客人会话登录
ubuntu12.04管理员账户登录不了桌面,只能客人会话登录 求助!!ubuntu12.04管理员账户登录不了桌面,只能客人会话登录. 登录管理员账户时,输入密码后,一直在登录界面循环 费了好大劲啊 ...
- ubuntu12.04管理员账户登录不了桌面,仅仅能客人会话登录
ubuntu12.04管理员账户登录不了桌面,仅仅能客人会话登录 求助!!ubuntu12.04管理员账户登录不了桌面,仅仅能客人会话登录. 登录管理员账户时,输入password后,一直在登录界面循 ...
- mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)
mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES) 解 ...
- laravel后台账户登录验证(5.5.48版本)
首先我是菜鸟,对laravel框架也不是很熟悉,突然有一天心血来潮就想研究一下laravel的后台登录用户登录的流程, 虽然公司项目中有这样的一套流程,也看了好几遍,越看越简单,越看我就越会了,当自己 ...
- stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置;分析其原因并赋予解决办法
stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置:分析其原因并赋予解决办法 1.于上图描述了案例中当前组网环境的各交换机位置与stp状态情况 : ...
随机推荐
- web端测试总结
1.数值型输入框: 条件:demcial(x,y) ,界面显示小数点到y位 通常要检查以下几点: (1)边界值:最大值.最小值.最大值+1.最小值-1 (2)位数:最小位数.最大位数.最小位数-1最 ...
- solr的创建分片的方式
在Solr4.4之后,Solr提供了SolrCloud分布式集群的模式,它带来的主要好处是: (1)大数据量下更高的性能 (2)更好扩展性 (3)更高的可靠性 (4)更简单易用 什么时候应该使用Sol ...
- imagettftext(): Could not read font
imagettftext(): Could not read font 1 确认FreeType Version ( 2以上版本) 2 确认字体路径,要是绝对路径的 3 确认 php.ini 配置 开 ...
- [xsy3553]游戏
题意:交互题,交互库有长为$n$的$01$串$S$,你可以用字符串$T$询问$\sum\limits_{i=1}^n[S_i=T_i]$,要求用$1030$次询问问出$S$,$n=5000$ 首先我们 ...
- JS系列:编程语言
1.编程语言 html+css标记语言 js:轻量级的交互语言->全栈编程语言 - 面向对象: + C++ + JAVA + PHP + C# (.net doc) + JS - 面向过程 + ...
- linux centos7 安装虚拟Python环境,pyenv安装文档
python多版本控制pyenv安装文档 1.在线安装: curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-i ...
- CentOS7-Docker 安装 Gitlab
官方教程 https://docs.gitlab.com/omnibus/docker/ 搜索镜像 [root@master ~]# docker search gitlab 拉取镜像 [root@m ...
- LRU缓存实现
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高” 在java中可以采用Linke ...
- vue中methods、computed、watch区别
vue中methods.computed.watch区别methods:事件调用的钩子 computed:{ // 计算属性是根据他依赖的值计算的,当依赖值发生变化,其跟着改变 // 计算属性是依赖缓 ...
- linux终端命令行前缀设置为“当前目录”(非绝对路径)
操作 打开家目录下的隐藏文件.bashrc 定位到62行,将小写的\W改为大写,保存即可. 重新打开bash 注意: /etc/profile , /etc/bashrc等文件里的环境变量设置会被.b ...