Условно называя один шаг в другом шаге в весенней партии - PullRequest
0 голосов
/ 04 июля 2019

У меня есть работа с тремя шагами, как показано ниже:

<job id="SomeJob" xmlns="http://www.springframework.org/schema/batch">

      <step id="deciderTaskLet" xmlns="http://www.springframework.org/schema/batch">
        <tasklet ref="deciderTaskLetRef"/>
        <next on="step1" to="step1"/>
        <next on="step2" to="step2"/> 
        <end on="FAILED"/> 
      </step>


      <step id="step1" xmlns="http://www.springframework.org/schema/batch">
        <tasklet>
            <chunk reader="step1Reader" processor="step1Processor" 
            writer="dummyWriter" commit-interval="1">
            </chunk>
            <listeners>
             <listener ref="step1Reader"/>
             <listener ref="step1Processor"/> 
            </listeners>
        </tasklet>
      </step>

      <step id="step2" xmlns="http://www.springframework.org/schema/batch">
        <tasklet>
            <chunk reader="step2Reader" processor="step2Processor" 
            writer="dummyWriter" commit-interval="1">
            </chunk>
            <listeners>
             <listener ref="step2Reader"/>
             <listener ref="step2Processor"/> 
            </listeners>
        </tasklet>
      </step>         
</job>

Шаг первый:

Это Tasklet, который решает, на каком шаге должен идти поток,

Шаг 2 или Шаг 3

Работает нормально.Здесь нет проблем

Шаг второй:

Это шаг, который читает записи и обрабатывает их как единое целое.

Это работает нормально.Здесь нет проблем

Шаг третий:

Здесь есть ловушка:

Reader будет читать записи и передавать их processor одинна один

Но если запись удовлетворяет некоторому условию (некоторая бизнес-логика):

Эта запись должна быть обработана в шаге 2. Средство чтенияи процессор этого шага должен называться изнутри шага 3

И это будет В расчете на основание

Можем ли мы этого достичь?

Я искал на форумах, но, похоже, все решения основаны на afterStep

То есть логика принятия решения будет запущена ПОСЛЕ ШАГА завершается. Но мы хотим, чтобы логика принятия решения срабатывала, когда ВНУТРИ шага

Кто-нибудь может помочь?

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