У меня есть веб-приложение, которое периодически создает рабочие места.Это веб-приложение находится на сервере и работает нормально.Если сервер дает сбой, а затем перезапускается, 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.