我想Reactor 2x集成到现有的Spring 4
应用REST
请求的执行,其中resources
可以相互独立获取过程中提高性能,排序的映射简化我们将作业并行化为多个线程,然后将它们连接到一个缓冲区中。多线程执行使用反应堆2.0
到目前为止,我们这个样本中的非簧环境中工作:
//Ordered resources to apply transformations.
List<Map<String, Object>> result;
result = Streams.from(resources)
.flatMap(m -> Streams.just(m) .dispatchOn(Environment.cachedDispatcher())
.map(resourceToMapFunction::apply))
.buffer().next().await(5, TimeUnit.SECONDS);
在上面的示例中,我们应用使用resourceToMapFunction
,然后用buffer()
法加盟改造,打造Promise
等待结果并返回result
。
我的第一个问题是,这是反应堆被假定使用的方式吗?我知道转换是正确应用的,但也许,我在Reactor
新手没有使用正确的方式。
我的第二个问题是没有什么大不了的,但Reactor
项目中是否有任何内容以resources
输入中提供的相同顺序返回?由于这是在多个线程执行,我敢肯定答案不是,而且就像我说的那样,我的担心越少,但是反正要问。
最后一个问题,当我介绍这个代码我Spring
项目转换失败,因为Bean
依赖应用underlaying的转变是不是在执行线程,这事我能与Spring反应堆版本容易吗?如果是这样,是否有任何链接或文件显示如何做到这一点?
非常感谢!
何塞·路易斯·
感谢您的回答,你能指点我使用reduce的示例代码吗?另外,如何使用它应用'Spring ApplicationContext'?即使用注入主线程的'Spring Beans'。我遵循这个例子:https://github.com/reactor/reactor-samples/blob/master/src/main/java/org/projectreactor/samples/SpringSamples.java并使它与'EventBus'一起作为POC工作,但是我的最终目标是使它与'Streams'一起工作。再次感谢您的帮助。 – jbarrueta