2016-11-12 50 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); 
});