如何使用Spring Batch进行块处理?

时间:2014-03-31 14:55:08

标签: spring batch-processing spring-batch

我第一次使用Spring Batch。我尝试了一些例子并阅读文档。但我仍然有疑问:

  • 我可以跳过面向块的处理中的一个阶段吗?例如:我从数据库中获取数据,处理数据并确定我需要更多数据,是否可以跳过写入阶段并执行下一步的读取阶段?我应该使用Tasklet吗?

  • 如何实施条件流程?

非常感谢, 弗洛里安

1 个答案:

答案 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