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