当前位置: 首页 > news >正文

定时任务引起的死锁

定时任务引起的死锁

前言:Java面试题
死锁的场景有哪些?你们是怎么解决的?
锁有哪些特性?

问题现象

1,文件上传报当前功能正在使用,请稍后再试
在这里插入图片描述
2,其他账号登录系统,登录不上去,有个接口锁住了,查询不到数据,

问题排查

1,问题一:

功能是当前只能有一个用户,可以导入,免得数据被覆盖,临时虚拟机直接连接redis,把锁的key删除,打包发上去,还是不行,报mysql连接超时

2,怀疑是配置文件的线程池,查看yml配置文件 ,

          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://11.19.228.206:3306/dev_manage_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
          username: xxsdfs
          password: sdfsfdgsf#2MrN
          type: com.zaxxer.hikari.HikariDataSource
          hikari:
            #最大连接池数
            maximumPoolSize: 5
            #是否自定义配置
            cachePrepStmts: true
            #连接池大小
            prepStmtCacheSize: 20
            #单条语句最大长度
            prepStmtCacheSqlLimit: 2048
            #新版本MySQL支持服务器端准备,是否开启
            useServerPrepStmts: true

修改
#最大连接池数
maximumPoolSize: 50
#是否自定义配置
cachePrepStmts: true
#连接池大小
prepStmtCacheSize: 50
#单条语句最大长度
故障依旧。

3,手动连接数据库,执行

mysql> update t_sys_info set  login_date = '2025-03-18 15:54:48.376000' where id = '1231412';
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

从错误信息 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 可以看出,问题是由于 锁等待超时 导致的。具体原因是:

当前事务尝试获取某个资源的锁,但该资源已被其他事务锁定,且等待时间超过了 MySQL 的锁等待超时时间(默认 50 秒)。

最终,MySQL 强制终止了当前事务,以避免死锁或长时间阻塞。

4,重启服务 manage 服务,重洗登录系统发现还是不行,故障依旧

5,执行

show processlist;
是 MySQL 中的一个命令,用于查看当前 MySQL 服务器上所有客户端连接的状态信息。它可以帮助你了解哪些查询正在执行、哪些连接处于空闲状态、是否有慢查询或阻塞等问题。
在这里插入图片描述
手动kill 进程发现故障依旧

6,数据库手动执行update 一次,但是这里报4次

想到运维之前写个定时任务,备份生产数据。。。。

在这里插入图片描述
什么数据库能15G,最后找到定时任务

在这里插入图片描述

最终发现定时任务多个空格
在这里插入图片描述

解决方案

1,删除备份的数据
2,重启mysql
systemctl restart mysql
3,重启manage , cloud_jar 服务
4,测试功能正常,登录正常OK
5,删除导入的测试数据

心得:找了3个半小时,后面有问题,先看内存,内存满了也会引起死锁!!!!

喜欢我的文章记得点个在看,或者点赞,持续更新中ing…

相关文章:

  • 如何创建并保存HTML文件?零基础入门教程
  • 【NLP 35、序列标注任务】
  • MATLAB 控制系统设计与仿真 - 28
  • React(三):脚手架解析、组件分类、生命周期、组件通信
  • Rust + WebAssembly 实现康威生命游戏并进行单元测试
  • 从中序与后序遍历序列构造二叉树(Java)
  • Rockchip --- 图像时延优化
  • pandas中excel自定义单元格颜色
  • 3D视觉相机引导机器人的原理
  • Arduino入门常用指令详解及语法指南
  • DeepSeek在数据爬取领域的革新实践:架构解析与实战指南
  • 案例驱动的 IT 团队管理:创新与突破之路:第三章 项目攻坚:从流程优化到敏捷破局-3.2.2 Scrum vs Kanban 的场景化选择
  • DeepSeek:AI 搜索引擎的革新者?
  • Chat2DB:自然语言生成 SQL 的时代来临,数据库管理更简单
  • FPGA中级项目4——DDS实现
  • 物联网中设备与平台通信的方式
  • SENT接口
  • 如何处理和格式化日期差异:JavaScript 日期差异计算实例
  • 高项第十二章——项目质量管理
  • 关于foobar2000插件的一点理解
  • 去年上海60岁及以上户籍老年人口占总人口的37.6%
  • 外交部:将持续便利中外人员往来,让“中国游”金字招牌更加闪耀
  • 大学2025丨苏大教授王尧:文科最大的危机是阐释世界的能力弱化
  • 西域都护府博物馆今日在新疆轮台县开馆
  • 山东发布高温橙警:预计19日至21日局地可达40℃
  • 种植耐旱作物、启动备用水源,甘肃各地多举措应对旱情