繁体   English   中英

如何在spring-batch中创建stream.parallel ItemReader?

[英]How to create a stream.parallel ItemReader in spring-batch?

如何在spring-batch ItemReader使用新的Java 8 stream.parallel api?

list.stream().parallel().forEach(file -> readLines(file));

通常,ItemReader从文件读取所有行,直到定义的块大小为止,然后将块列表传递给Itemwriter。 当编写器完成时,将读取下一个块。

我希望此读写过程使用java8 stream.parallel api。 那可能吗?

在读者本身内部,我不确定百分百用例是否有意义。 流api的思想是从源流式传输到终端操作。 Spring Batch ItemReader的合同是一次提供一个项目,这显然不理想。 我认为您可以找到的最接近的方法是使用流api将项目加载到内存中,但是无法阻止它在项目之间甚至块之间读取。

我一直在研究创建一个使用流概念(Java 8流或通过Reactor或RxJava的反应流)的Step实现的想法,但要等到最早的3.1版本发布后才能使用(我会如果您有兴趣,可以与您合作)。 这将使用某种类型的流提供程序作为“读取器”,中间功能充当“处理器”角色,而终端功能充当“编写器”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM