自己负责的模块有一个拦截器是往数据库一个表里插入数据,数据是通过代码入参方式进入数据库,拦截器会拦页面上的每一个功能,项目强后滩交互是用springMVC,测试的时候都不会插两条相同的数据,正式上线以后,有少量用户信息会同时插入两条相同的,主键设置自增长,插入的时间数据库显示是一样的,我自己的分析是会不会用户点击一个功能按钮,网络慢拦截器还没执行结束,又点击一次,这样执行两次,拦截器执行两次,调用两次存储过程。有大神可以帮忙分析下嘛
有可能是这样的,你的前台没有做重复提交控制吗?
不可能。除非没有主键控制
我感觉是并发问题,会不会一个用户名可以同时登陆,或者是前端同时发送两次请求引起
多线程并发调用出现的吧,调用的地方加个线程锁lock一下就好了。
用户同时开两个浏览器,在两个浏览器上面同时进行相同的操作,就出现两条相同的数据,两个浏览器同时操作时前台校验无法分辨,只能在后台查询数据库来实时校验