[英]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.