顺序读取器/写入器但是pararell ItemProcessor

时间:2016-02-25 13:25:01

标签: spring-batch

在春季批次中,我想完成这样的任务:

  1. 从文件中读取输入对象,一个对象跨越多行。所以这必须是顺序的。
  2. 对对象执行操作。 [时间昂贵,需要拨打另一个应用程序]
  3. 写入输出文件。
  4. 由于2)是最昂贵的时间,我想减少这个。

    enter image description here

    示例流程图

    enter image description here

    如何在Spring批处理中实现这一目标?

    非常感谢!

2 个答案:

答案 0 :(得分:0)

对于弹簧批处理中的每次读取都将被调用, 可能会取消读者编写器和处理器概念,并使用tasklet步骤来实现与自定义逻辑相同的步骤。

答案 1 :(得分:0)

我能想到的最简单的选择是:

  • 创建ExecutorService并将其注入处理器。
  • 在处理器中,不是返回T,而是向执行程序提交任务,而是返回T的未来。
  • 作者获得了一份期货清单。对于每一个未来,它都会获得它的价值(可能会阻塞一段时间,至少对于第一个项目而言)并做到这一点。