当前使用版本(必须填写清楚,否则不予处理)

springboot版本:2.0.3.RELEASE

mybatis版本:3.0.5

jdk:1.8

该问题是怎么引起的?(最新版上已修复的会直接close掉)

public Result getExamSetByExamId(@RequestParam("useTime")String useTime,

@RequestParam("openId")String openId,

@RequestParam("score")String score,

@RequestParam("isPass")Integer isPass,

@RequestParam("resultCount")Integer resultCount,

@RequestParam("answer")String answer){

try{

List resultToday = resultEverydayService.findResultToday(openId);

if(!resultToday.isEmpty()){

return ResultUtils.error(0001,"该账号已经答过题,请勿重复提交");

}

ResultEveryday resultEveryday = new ResultEveryday();

resultEveryday.setScore(Integer.valueOf(score)).setOpenId(openId).

setIsPass(isPass).setUseTime(useTime).setResultCount(resultCount);

resultEverydayService.save(resultEveryday);

resultDetailsEveryDay(resultEveryday.getResultId(),answer);

return ResultUtils.success(resultEveryday.getResultId());

}catch (Exception e){

log.error(openId+",提交每日答题失败,{}",e);

return ResultUtils.error(0001,"提交失败");

}

}

数据库操作有两次,第一次是查询

List resultToday = resultEverydayService.findResultToday(openId);

第二次是新增

resultEverydayService.save(resultEveryday);

操作的是同一张表,先查询是否已经有,没有的话进行新增

重现步骤

当并发的时候出现此类错误

报错信息

Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

The error may involve com.mybatis.plus.mp.mapper.ResultEverydayMapper.insert-Inline

The error occurred while setting parameters

SQL: INSERT INTO mp_result_everyday ( open_id, use_time, is_pass, score, result_count ) VALUES ( ?, ?, ?, ?, ? )

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

; ]; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

mysql并发插入死锁_高并发下insert死锁 · Issue #ITUNR · baomidou/mybatis-plus - Gitee.com...相关推荐

  1. mysql innodb 并发插入问题_包大量死锁错误_mysql innodb 并发插入问题,包大量死锁错误...

    开了10个并发写线程,没1000条记录批量提交一次,结果mysql包大量死锁错误! "Deadlock found when trying to get lock; try restarti ...

  2. mysql余额高并发_高并发下作余额扣减的一些经验

    前一段时间参加了优化一个老的计费系统,学习了一些高并发下做余额扣减的常用手段,也做了一些尝试,因此在这里总结记录一下. 问题描述 对于一个计费系统来说,并发问题事实上分为两类,一类是应用并发高,也就是 ...

  3. Mysql并发插入引发的死锁

    案发现场 项目中有一张业务关联表t_biz_ref,最近给该表建立了复合索引,测试阶段并发执行插入操作频繁出现死锁情况. t_biz_ref表结构 CREATE TABLE `t_biz_ref` ( ...

  4. .net core高并发_高并发下的Node.js与负载均衡

    阅读本文约需要6分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下浅谈前端自动化构建的相关知识,今天跟大家分享浅谈前端自 ...

  5. php mysql 秒杀_redis+PHP实现高并发下秒杀数据入库的问题

    在高并发下实现抢购秒杀功能中,我有一个疑问,就是数据入库的问题,什么时候入库. 设想思路: 1.判断他抢购成功了,立马把生成的订单数据写入mysql订单表,同时库存表字段减少1: 2.判断抢购成功后, ...

  6. lua mysql 死锁_使用 mysqladmin debug 查看死锁信息

    使用 mysqladmin debug 查看死锁信息 mysqladmin -S /mysql/data/mysql.sock debug 然后在error日志中,会看到: 11 lock struc ...

  7. mysql怎么插入时间_如何在MySQL中插入日期?

    在MySQL中插入日期的方法:首先打开脚本文件:然后通过[INSERT INTO tablename (col_name, col_date) VALUE ('DATE: Auto CURDATE() ...

  8. java中哲学家就餐死锁_哲学家就餐问题与死锁总结

    死锁的四个条件: (1) 互斥条件:一个资源每次只能被一个进程使用. (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放. (3) 不剥夺条件:进程已获得的资源,在末使用完之前 ...

  9. mysql文章浏览计数_高并发文章浏览量计数系统设计

    最近因为个人网站的文章浏览量计数在Chrome浏览器下有BUG,所以打算重新实现这个功能. 原本的实现很简单,每次点击文章详情页的时候,前端会发送一个GET请求articles/id获取一篇文章详情. ...

最新文章

  1. PowerBuilder程序 ASA 数据库移植后不能连接解决
  2. Python基础语法学习笔记
  3. php pdf 加密 签名 时间戳,在现有PDF签名上添加签名时间戳
  4. Java调用百度OCR文字识别的接口
  5. requestmapping配置页面后_SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
  6. 移动端设备判断,ios,android,判断设备,安卓
  7. Procrustes Analysis(普氏分析)
  8. linux httpd 开机启动脚本,httpd服务如何开机启动
  9. html 表格 单击,在HTML表格中单击“空”单元格
  10. delphi版本修改PE头源码
  11. python 可迭代对象_Python3学习笔记(十四):可迭代对象、迭代器和生成器
  12. Delphi 2010 新增功能之: Rtti 单元(5): 获取方法的更多信息
  13. Linux 命令(126)—— ssh 命令
  14. 苹果6换屏多钱_iPhone12Pro更换屏幕多少钱 苹果12官方换屏价格公布
  15. OpenGL Tutorial
  16. 配置多个git账号_git配置账号(用户名/邮箱)
  17. Maximum call stack size exceeded 如何解决?
  18. java后台提示信息弹出框
  19. 计算机公共课3-字处理软件Word 2010
  20. C++ -Pointer指针总结(一)

热门文章

  1. 面试题整理18 根据上排给出十个数,在其下排填出对应的十个数
  2. 8个我希望早点意识到的学生思维
  3. cvpr2019/cvpr2018/cvpr2017(Papers/Codes/Project/Paper reading)
  4. 数据库学习实践(四、五)--分页浏览、查询数据
  5. 关于HOG特征的一个Python代码
  6. Hadoop安全实践
  7. 线性代数:第五章 相似矩阵及二次型(1)向量的内积 方阵的特征值与特征向量 相似矩阵
  8. 【Accelerated C++】重点回顾(续)
  9. 查看自己电脑可以支持的最大内存量
  10. C++面试中string类的一种正确写法