2016-03-07 73 views
5

最近我一直在閱讀關於rx-java的一些信息。我想知道框架是否適合線程間通信系統的賬單。我正在使用java編寫的REST服務器上工作。每次某個資源被PUT/POST時,我想使用工作線程池做一些計算。但是,我仍然希望能夠監控這些請求,也許可以打印出一些統計數據。基本上我想要一個Observable,這樣我就可以靈活處理這些請求,並且可以使用多個Observer爲事件循環創建一個可觀察元素

我的問題是,我該如何創建一個合適的Observable?我見過的大多數指南都涉及到Observables上的操作,比如映射等。高級操作大多是從集合或整數範圍創建的。無論如何,似乎不可能將新的價值推向創建的觀測器。顯然,保持這種靈活性的唯一方法是使用Observable.create。但是,這似乎是相當低級的。我將不得不爲每個新用戶實施一個隊列列表,並對每個用戶執行​​推送。這是非常必要的嗎?或者像這樣在rx-java中已經實現了嗎?

回答

5

你在找什麼是Subject。這些充當觀察者和觀察者。例如,ReplaySubject將重新發送發送給所有訂戶的所有事件。

Subject<String> replaySubject = ReplaySubject.create(); 
replaySubject.subscribe(s -> System.out.println(s)); 

// elsewhere... 

replaySubject.onNext("First"); 
replaySubject.onNext("Second"); 
replaySubject.onComplete();