Пакетный перезапуск Java не обрабатывает шаги
При перезапуске задания НЕ выполняется пакет, т.е. process()
Метод пакетирования не называется.
Есть ли у кого-нибудь подсказки, почему перезапуск не выполняет ни одного из пакетов. Я перепробовал почти все комбинации, но без изменений, чтобы перезагрузка работала нормально.
Перезапуск работает как таковой () не приводит к ошибке - НО успешно завершается без вызова каких-либо пакетов process()
методы.
Я использую wildfly 13.0.0.Final с jBeret.
У меня есть простое пакетное задание Java с этим определением jox.xml. Вызываемые пакеты в настоящее время не делают ничего, кроме как возвращают статус.
<job id="job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0" restartable="true">
<flow id="processing">
<step id="download" next="process">
<batchlet ref="download"/>
</step>
<step id="process" next="notify">
<batchlet ref="process"/>
<stop on="STOPPED" restart="notify" />
</step>
<step id="notify">
<batchlet ref="noify"/>
<end on="COMPLETED"/>
</step>
</flow>
</job>
Возвращаемые значения bachlets:
- скачать... ЗАВЕРШЕНО
- процесс... ОСТАНОВЛЕН
- уведомить... ЗАВЕРШЕНО
При запуске этой работы с jobOperator.start()
все работает как положено.
При повторном запуске STOPPED выполнения задания с jobOperator.restart()
задания выполняются, но пакет не вызывается.
Пакеты выглядят так
@Named
public class Notify extends AbstractBatchlet {
@Override
public String process() throws Exception {
return BatchStatus.COMPLETED.toString();
}
@Override
public void stop() throws Exception {
}
}
1 ответ
Атрибут restart имеет значение notify, которое является именем шага в потоке. Возможно, во время перезапуска JBeret искал шаг верхнего уровня с именем notify, который явно не существует.