1

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

逻辑过程是

  1. 从已知状态的数据库中选择一组记录
  2. 将记录写入文件
  3. 更新已写入文件的记录状态

该过程可能会触及大量记录,并且我希望尽可能缩短更新事务,因此我的预期设计是

  1. 使用驱动查询模式生成候选行列表
  2. 迭代第 1 步的结果,将它们写入输出文件
  3. 开始交易
  4. 再次迭代第 1 步的结果,更新数据库中行的状态
  5. 结束交易

我打算使用现有的数据访问层来完成数据库工作,而不是使用 spring JdbcCursorItemReader。

这是 Spring Batch 可以轻松应对的事情,还是我需要再考虑一下?

提前致谢

戴夫

4

1 回答 1

0

实际上,这在Common Batch Patterns文档中有所描述;您可以阅读第11.4 节驱动基于查询的 ItemReaders

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

希望这会有所帮助

于 2012-08-09T22:29:58.257 回答