弹簧批量流量控制

时间:2014-05-20 14:47:19

标签: java spring-batch

我有春季批量工作,有读者,处理器和作家。

首先,我想知道这3个组件的运行顺序是:它们是顺序的(对于commit-interval = 1)还是在写入前一个组件之前读取的新项目以避免延迟?< / p>

我对此感兴趣,因为我有以下情况:

我希望有一个“装配线”:read-&gt; process-&gt; write-&gt;再次读取 - &gt; ...

这意味着在写入上一个项目之前不会读取任何内容。

这件事已经开箱即用吗?如果没有,我怎么能完成这样的事情?

1 个答案:

答案 0 :(得分:3)

ItemReader,ItemProcessor和ItemWriter之间的交互在Spring Batch中如下:

  • 直到达到块大小
    • ItemReader.read()
  • 虽然有些项目尚未处理
    • ItemProcessor.process()
  • ItemWriter.write()//单块调用块中的所有项目。

话虽这么说,将块大小设置为1,它会被处理读取,处理,写入,重复。

重要的是要注意,不仅上述合同得到保证,而且每一步都在下一步执行之前完成(不能拆分)。

您可以在此处详细了解各种组件如何在文档中进行交互:http://docs.spring.io/spring-batch/trunk/reference/html/configureStep.html#chunkOrientedProcessing