我正在为某些日常过程实现Spring Batch多线程。项目读取器,项目处理器和项目写入器都是bean(单个)。另外我正在使用Hibernate和spring数据jpa进行数据库访问。对于线程,我正在使用threadpooltaskexecutor。
线程将无缘无故地挂起,也许我不知道根本原因。现在,在日志中,休眠状态将停留在select或insert语句中,并永远挂在那里。我真的不知道原因。对于事务,我具有required_new和read_committed来进行传播和隔离。其他一切只是Spring Boot的默认设置。
我正在处理20k json,大小可能有所不同,但有些很大。我无法共享整个代码,因为我不知道问题出在哪里。基本上在项目处理器中,我只有很少的同步块来处理业务逻辑。
对于这个问题,我只想知道可能是什么原因?因为Java没有提供任何信息。
答案 0 :(得分:0)
没有代码很难说出可能是什么问题。您需要确切地了解它的挂起位置。可能的原因是