如何在Spring Batch作业中的多个步骤中重复使用同一项目处理器(每个步骤包含一个不同的项目读取器)

时间:2019-04-01 15:28:16

标签: xml spring spring-batch batch-processing

我正在设置一个新的批处理作业以创建提取文件。我正在使用多个sql查询(每个都使用他们自己的自定义itemreader)从数据库中获取各种结果。处理这些结果并将其组合/写入单个文件以进行输出的最佳方法是什么?我是否需要为每个步骤创建一个新的处理器?还是有效率更高的东西?

我正在看到CompositeItemProcessor,但似乎可以将其用于将多个流程链接到一个步骤中,而不是用于多个步骤中。

1 个答案:

答案 0 :(得分:0)

面向块的步骤只能有一个阅读器,因此,如果您想从不同来源读取项目并将其组合,则需要多个步骤。就您而言,我将分两个阶段进行:

  • 阶段1:从不同来源读取数据并将其写入临时存储区(例如中间表)的几个步骤。这里可能不需要项目处理器。这些步骤可以并行运行
  • 阶段2:面向块的步骤从临时存储中读取数据,处理数据(通过组合字段或执行任何业务逻辑)并将结果写入合并的输出中

希望这会有所帮助。