我有一个需要实现的批处理过程。我的客户首选的批处理框架是 Spring Batch。
逻辑过程是
- 从数据库中选择已知状态的大量记录
- 将记录写入文件
- 更新已写入文件的记录的状态
该过程可能会涉及相当大量的记录,并且我希望更新事务尽可能短,因此我的预期设计是
- 使用驱动查询模式生成候选行列表
- 迭代第 1 步的结果并将其写入输出文件
- 开始交易
- 再次迭代第 1 步的结果,更新数据库中行的状态
- 结束交易
我打算使用现有的数据访问层来完成数据库工作,而不是使用 spring JdbcCursorItemReader。
这是 Spring Batch 可以轻松应对的事情,还是我需要再考虑一下?
提前致谢
戴夫
最佳答案
实际上这在Common Batch Patterns中有描述。文档;您可以阅读11.4 驱动基于查询的 ItemReaders
部分通过使用 CompositeItemWriter拥有文件输出编写器和数据库更新逻辑以及从第一步获取输入的处理器,您可以模拟所需的行为。
希望这有帮助
关于java - Spring Batch 可以多次使用 Driving Query 的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847796/