我的工作分为以下三个步骤:
<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中进行处理。
意味着此步骤的阅读器和处理器应从
这将是 PER RECORD基础
我们可以实现吗?
我在论坛上进行了搜索,但似乎所有解决方案都基于afterStep
也就是说,决定逻辑将被触发完成步骤完成 但是我们想要的是决策逻辑应该在在步骤中
内触发有人可以帮忙吗?