Остановка пакетного приложения JSR во время работы без исключения - PullRequest
1 голос
/ 12 февраля 2020

У нас есть пакетное приложение jsr 352 java, которое мы хотим остановить выполнение досрочно, если условие выполнено, но не выдает исключение. Базовая схема c нашей работы выглядит следующим образом:

<job id=XXX>
  <step id="XXX">
    <listeners>
      <listener ref=XXXXX /> <--Step listener
      <listener ref=XXXX /> <-- Item process listener
    </listeners>
    <chunk checkpoint-policy="item" item-count="1">
      <reader ref=XXXXXX />
      <processor ref=XXXXXX />
      <writer ref=XXXXXX />
    </chunk>
  </step>
</job>

Во время нашего приемника шагов, в методе beforeStep (), если выполняется указанное условие c, мы не хотим продолжать Остальная часть пакетной работы, мы просто хотим изящно остановиться. До сих пор единственное, что могло бы завершить пакетное задание, - это возникновение исключения для сценария ошибки или успешного завершения задания.

Как бы мы выполнили sh, пропуская оставшуюся часть шага , поскольку это единственный шаг, если это условие выполняется внутри слушателя шага? Кроме того, является ли исключение рекомендуемым способом завершения пакетного процесса во время сценария ошибки, или есть лучший / более рекомендуемый способ?

1 Ответ

1 голос
/ 12 февраля 2020

У вас может быть внешний компонент, который будет следить за условием и останавливать выполнение текущего задания при выполнении условия. Вызов метода JobOperator stop остановит выполнение задания изящно.

Или вы можете заставить ваше устройство считывания проверять условие и возвращать null при true, что естественным образом завершит выполнение шага.

...