线上项目有 2 个定时任务在跑
任务 1:向 A 表中批量插入数据,采用的是 mybatis SqlSession ---> ExecutorType.BATCH 方式来批量提交数据
任务 2: 向 A 表中删除一条数据
在某个时间点,2 个任务同时执行了,然后产生了死锁的情况。
想问下各位大佬,这个死锁是怎么造成的?
我看了一些文档猜测是 gap 锁和插入意向锁,但是又有点理不清楚到底怎么死锁的
mysql 查看死锁的日志 show engine innodb status\G;
日志如下 :
任务 2 的锁
任务 1 的锁(使用了 spring 的事务回滚)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.