我目前正在考虑重构现有的Spring Batch作业。
但是,阅读器似乎在处理太多数据。
当前已读
我认为这会妨碍春季批处理有效地分批完成工作的能力吗?
我相信更好的方法是让只读操作完成上述第一步,然后再由复合处理器处理其他步骤。
这是处理这项工作的最佳方法,还是有一种更聪明的方法来使用多个步骤或多次读取来处理此用例?
答案 0 :(得分:2)
您是正确的,因为ItemReader
(根据您的描述)可能做得太多。驾驶查询模式将在此处应用,并指示您想从ItemReader
返回项目,然后使用ItemProcessor
来丰富或转换它们。您可能需要进行一些汇总以处理调用其他远程服务对性能的影响,但是您可以在不将所有逻辑都耦合到ItemReader
的情况下进行处理。
您可以在以下文档中了解有关驾驶查询模式的更多信息:https://docs.spring.io/spring-batch/trunk/reference/html/patterns.html#drivingQueryBasedItemReaders