0

我试图找到如何确定JobExecution从获取JobExplorer是否实际运行的方法。问题是资源管理器通过运行 jdbc 查询来检查作业执行。但是在某些情况下(例如,带有 Spring Batch 作业的容器被杀死/重新启动)作业仍然以运行状态持续存在于数据库中,尽管它们是孤立的并且在运行时实际上没有运行任何处理。

和简单的方法,如

private boolean isJobRunning(String jobName) {
    var activeExecutions = jobExplorer.findRunningJobExecutions(jobName);
    return activeExecutions
        .stream()
        .anyMatch(jobExecution -> jobExecution.getStatus().isRunning());
}

没有按预期工作。

有没有办法找到真正活跃的工作?提前致谢

4

0 回答 0