Spring Batch可以多次使用Driving Query的结果吗?

时间:2012-08-07 14:07:58

标签: java spring-batch

我有一个我需要实现的批处理。我的客户首选批处理框架是Spring Batch。

逻辑过程是

  1. 从已知状态的数据库中选择一组记录
  2. 将记录写入文件
  3. 更新已写入文件的记录的状态
  4. 这个过程很可能触及大量记录,我希望尽可能缩短更新事务,所以我的设计是

    1. 使用驾驶查询模式生成候选行列表
    2. 迭代第1步的结果,将它们写入输出文件
    3. 开始交易
    4. 再次迭代步骤1的结果,更新数据库中行的状态
    5. 结束交易
    6. 我打算使用现有的数据访问层来完成数据库工作,而不是使用spring JdbcCursorItemReader。

      这是Spring Batch可以轻松应对的事情,还是我需要重新思考?

      提前致谢

      戴夫

1 个答案:

答案 0 :(得分:0)

实际上这在Common Batch Patterns文件中有描述;您可以阅读 11.4基于驱动查询的项目阅读器

部分

通过使用具有文件输出编写器的CompositeItemWriter和数据库更新逻辑以及从第一步获取输入的处理器,您可以模拟所需的行为。

希望这有帮助