Я пытаюсь найти способ определить, действительно ли работает JobExecution
, полученный от JobExplorer
. Проблема в том, что проводник проверяет выполнение задания, запуская запрос jdbc. Но в некоторых случаях (например, контейнер с заданием Spring Batch был убит/перезапущен) задания остаются в БД в рабочем состоянии, хотя они потеряны, и во время выполнения фактически не выполняется обработка.
И простой метод, как
private boolean isJobRunning(String jobName) {
var activeExecutions = jobExplorer.findRunningJobExecutions(jobName);
return activeExecutions
.stream()
.anyMatch(jobExecution -> jobExecution.getStatus().isRunning());
}
не работает, как ожидалось.
Есть ли способ найти фактически активные вакансии? заранее спасибо
RUNNING
в базе данных. Просто взглянув на базу данных (а именно на столбец состояния), невозможно отличить задание, которое действительно выполняется, от задания, которое было остановлено. - person Mahmoud Ben Hassine   schedule 02.01.2020