为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Batch多线程卡住没有任何异常输出

Spring Batch多线程卡住没有任何异常输出

三国纷争 2022-06-30 11:49:13
我正在为一些日常流程实现 Spring Batch 多线程。项目阅读器、项目处理器和项目编写器都是 bean(单例)。此外,我正在使用 Hibernate 和 spring data jpa 进行数据库访问。对于线程,我使用的是 threadpooltaskexecutor。线程会无缘无故挂起,可能我不知道根本原因。现在,在日志中,hibernate 将停留在 select 或 insert 语句中,并且永远挂在那里。我真的不知道原因。对于事务,我有 required_new 和 read_committed 用于传播和隔离。其他一切都是 Spring Boot 的默认设置。我正在处理 20k json,大小可能不同,但有些很大。我不能分享整个代码,因为我不知道问题出在哪里。基本上在项目处理器中,我几乎没有同步块来处理业务逻辑。对于这个问题,我只想知道可能的原因是什么?因为Java不提供任何信息。
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

没有代码,很难说可能是什么问题。你需要深入挖掘它被绞死的确切位置。可能的原因是

  1. 在阅读器中选择查询需要很长时间。(可能是由于不正确的索引或表可能已锁定)。您可以在阅读器中添加更多日志,以准确检查导致此问题的记录。

  2. 如果您在 ItemProcessor 中执行任何数据库操作,请添加日志添加检查。

  3. 在 writer 中,插入可能需要很长时间才能完成写作。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信