如何使用Reactor framework 2.x执行multithreading映射/减少?
我之前曾向Reactor 1.x提出这个问题 :
假设我有一个
Collection
。 我要:将每个
Map
实例同时转换为Foo
类型的对象(每个实例完全独立于另一个实例 – 不需要串行/迭代地转换每个实例)。当所有这些都被转换时,我想要一个方法
onReduce(Collection foos)
被调用 – 该参数包含所有生成的Foo
实例。
但我们似乎无法找到Reactor 2.x的等效解决方案 – 只需单线程。
你如何在Reactor 2.x中执行multithreadingmap / reduce? 例如,如何使用基于ExecutorService的Dispatcher执行此操作?
现在使用Reactor 2.0非常简单。 你可以这样做:
List
- 根据输入数据创建
Stream
。 - 为每个
Map
创建一个新Stream
,并在给定的Dispatcher
上调度map操作。 - 缓冲所有值,直到完成,清空收集时将向下游发送。
- 消耗列表,它是来自子流的负载平衡变换的结果。