Пакетный API Java EE 7 (JSR-352): можно остановить один шаг, а не все задание?

Примечание: JSR-352, Java EE, wildfly 17.0.1, без весны

Я определил следующее задание в xml:

<?xml version="1.0" encoding="UTF-8"?>
<job id="xml2json" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd" version="1.0">
    <flow id="flow">
        <step id="step1" next="step2">
            <batchlet ref="xmlRead">
            </batchlet>
        </step>
        <step id="step2">
            <batchlet ref="notificationBatchlet">
            </batchlet>        
        </step>
    </flow>
</job>

Мое требование - обработать остановку задания, и я могу сделать это, переопределив stop() в xmlRead (первый шаг).

Проблема в том, что мне также нужно быть уверенным, что второй шаг всегда выполняется, но из моих тестов, если я запускаю следующий код внутри первого пакета XmlRead:

        if (shouldStop) {
            log.warn("xmlRead - job stopped by user");
            return FAILED.toString();
        }

В конечном итоге статус выхода для задания будет FAILED (правильно!), Но второй шаг никогда не выполняется.

Есть идеи, как смоделировать этот сценарий?

1 ответ

У вас может быть список переходных элементов внутри первого шага вместо nextattributem, чтобы направлять поток выполнения задания в зависимости от статуса выхода (возвращаемое значение из пакетного пакета). Что-то вроде следующего:

<step id = "step1">
  <batchlet ref="xmlRead"/>

  <next on = "flag1" to = "step2"/>
  <stop on = "flag2"/>
  <fail on = "flag3"/>
</step>

Step2 может следить за тем же условием из другого распространенного компонента приложения, чтобы решить, что делать, или вы можете сохранить условие как данные выполнения задания (см. Как- то связанное обсуждение)

Я только что создал образец пакетного приложения batchlet-singleton.war, чтобы продемонстрировать использование пакетного пакета, одноэлементного сеансового компонента и условного перехода.

Другие вопросы по тегам