我第一次使用Spring Batch。我尝试了一些例子并阅读文档。但我仍然有疑问:
我可以跳过面向块的处理中的一个阶段吗?例如:我从数据库中获取数据,处理数据并确定我需要更多数据,是否可以跳过写入阶段并执行下一步的读取阶段?我应该使用Tasklet吗?
如何实施条件流程?
非常感谢, 弗洛里安
答案 0 :(得分:2)
跳过块只需抛出一个已声明为"可跳过异常"的异常。你可以这样做:
<step id="step1">
<tasklet>
<chunk reader="reader" writer="writer"
commit-interval="10" skip-limit="10">
<skippable-exception-classes>
<include class="com.myapp.batch.MyException"/>
</skippable-exception-classes>
</chunk>
</tasklet>
</step>
可以轻松实现 条件流,决定步骤执行的ExitStatus
:
<job id="job">
<step id="step1" parent="s1">
<next on="*" to="stepB" />
<next on="FAILED" to="stepC" />
</step>
<step id="stepB" parent="s2" next="stepC" />
<step id="stepC" parent="s3" />
</job>
阅读文档以深入了解这些主题:http://docs.spring.io/spring-batch/reference/html/configureStep.html