Как принудительно остановить работу в Spring Batch? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть веб-приложение, которое периодически создает рабочие места.Это веб-приложение находится на сервере и работает нормально.Если сервер дает сбой, а затем перезапускается, JobExplorer показывает, что задание все еще выполняется.Но на самом деле эта работа никогда не прекращается, и я должен остановить ее сам.Для этого я пытаюсь использовать JobOperator, и забавно то, что он говорит, что не может остановить работу, которая не выполняется.

Чтобы получить список запущенных заданий:

for (String jn : jobExplorer.getJobNames())             
   for (JobExecution je : jobExplorer.findRunningJobExecutions(jn)) {
        ...
    }

Чтобы остановить задание:

try {
    jobOperator.stop(je.getId());
} catch (NoSuchJobExecutionException e1) {
    e1.printStackTrace();
} catch (JobExecutionNotRunningException e1) {
    e1.printStackTrace();
}

Сообщение об ошибке: «JobExecution должен быть запущен, чтобы он могбыть остановленным "

Оба je.isRunning() и je.isStopping() возвращают true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...