gpt4 book ai didi

java - spring-xd-batch 作业锁定

转载 作者:行者123 更新时间:2023-11-28 23:23:05 25 4
gpt4 key购买 nike

我正在使用 spring-xd 通过批处理作业获取数据。大量作业在 4 个容器中并行运行。 10 到 40 个工作岗位之间的任何地方。其中大部分在不到一分钟内完成。我正在使用 redis(不是 rabbitmq)和 mysql 进行数据存储。 Spring-xd-batch 将不同的 mysql-db 用于作业/步骤统计,而我的应用程序将不同的 mysql-db 用于其自身目的。两个 mysql-dbs 在同一台服务器上。所有 4 个容器和管理员都指向同一个 mysql-db。

我注意到,大多数时候,一切正常,但偶尔(至少每天一次),我确实遇到以下异常:

引起:org.springframework.dao.DataAccessResourceFailureException:无法获取last_insert_id();嵌套异常是 java.sql.SQLException: Lock wait timeout exceeded;尝试重新启动事务。

这是由 spring-xd(不是我的应用程序)抛出的。该异常不特定于特定容器(它随机发生在任何容器上),也不特定于特定作业。

我花时间清理 throw google。我已经将我的 innodb_lock_wait_timeout 从 50 更新为 600。我已经将我的 trx_isolation 从可重复读取更新为读取提交,但这些似乎都没有任何区别。此外,我启用了慢速查询日志记录,但所有记录的查询都与抛出异常的时间范围不匹配。

任何指点将不胜感激。

最佳答案

我的解决方法是将 *_seq 表从 innodb 更改为 mysam 引擎。已经这样运行了一个多月了,没有表锁定。

关于java - spring-xd-batch 作业锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40637800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com