关闭钩子代码没有完全执行

时间:2018-06-12 16:22:44

标签: java spring spring-boot spring-batch java-threads

我有一个Spring批处理应用程序,并且在关闭钩子中我添加了一些代码,它检查是否有任何批处理器处于运行状态,如果是运行状态,则关闭它优雅地包括数据库调用,但是问题是代码的和平没有完全执行。

有时候它被卡住了 log.info(" ************ explorer.getJobInstanceCount(job.getName())" + explorer.getJobInstanceCount(job.getName()));

有时在List jobInstances = explorer.findJobInstancesByJobName(job.getName(),0,explorer.getJobInstanceCount(job.getName()));

explorer.getJobInstanceCount和explorer.findJobInstancesByJobName方法正在进行数据库调用以从批处理元数据表中获取详细信息。

我在UNIX机器上运行它,环境是Dev。这不是完整的代码,我必须在此之后做其他的事情,但我无法继续,因为我无法掌握当前正在运行的工作,如果有的话。

在日志中可以看到

[Thread-3] JdbcTemplate - 执行准备好的SQL查询
[Thread-3] JdbcTemplate - 执行准备好的SQL语句[SELECT COUNT(*)来自BATCH_JOB_INSTANCE JOB_NAME =?]

但之后什么都没有。

0 个答案:

没有答案