2016-11-12 40 views
1

有没有人有过在RxJava或Reactive Stream中使用content based routing的惯用方法?使用RxJava进行基于内容的路由的习惯用法

我可以看到如何使用标准运算符(如地图过滤器和变换)创建反应式消息处理管道。

但我看不到一个惯用的为什么使用运算符来切换几个可能的管道。
我希望能够基于一个初始输入对象或映射触发一个关闭许多处理流水线,以便根据输入映射或对象的内容选择不同的流水线。

这个想法是我需要做一个几个可能的请求到一个外部的API和什么决定了API和管道触发依赖于输入对象到我的控制器。

我知道这可以通过Spring集成或骆驼完成,但我的用例并不需要集成引擎的完全灵活性,因为蒙克能够处理线路上的延迟。

谢谢,请

+0

你是不是指“惯用的方式”? –

+0

我很抱歉通过惯用的方式,我的意思是使用一个内置的运算符。 Tx –

+0

是的,我认为你的意思是习惯于惯用的方式,这种方式很好,正文说'习惯性的原因'。 –

回答

3

基于内容的路由是flatMap工作:

observable.flatMap(x -> { 
    if (isA(x)) 
     return observableA(x); 
    else 
     return observableB(x); 
});