/ / Accumula osservabili da diversi flussi per il polling: java, system.reactive, reactive-programming, rx-java

Accumula osservabili da diversi flussi per il polling: java, system.reactive, reactive-programming, rx-java

Sto cercando di accumulare Observable dalle chiamate al server, per poi renderle piatte e fare un'altra chiamata al server.

private Observable poll(Observable<TaskStatus> taskObservable) {
Observable.add(taskObservable) //Pseudocode
.buffer(3 sec)
.flatMap(...)
...
}

Come si può ottenere l'accumulazione osservabile ("aggiungi")?

risposte:

1 per risposta № 1

Probabilmente stai cercando il merge () operatore.

Per ulteriori informazioni sulla combinazione di osservabili, vedere questo: https://github.com/Netflix/RxJava/wiki/Combining-Observables


0 per risposta № 2

Per accumulo quindi, penso che potresti essere dopo qualcosa come il CompositeDisposable fa parte di Rx.NET.

Esempio di utilizzo di Rx.NET: http://rxwiki.wikidot.com/disposables#toc2

Documentazione per la classe Rx.NET: http://msdn.microsoft.com/en-us/library/system.reactive.disposables.compositedisposable(v=vs.103).aspx

Credo che l'equivalente Java Rx sia il CompositeSubscription classe.

Vedere qui: http://netflix.github.io/RxJava/javadoc/rx/subscriptions/CompositeSubscription.html


0 per risposta № 3

Dovresti usare il finestra operatore (Vedi maggiori informazioni Qui, cerca la versione con window(source, timespan, unit)).

Il tuo codice dovrebbe essere qualcosa del genere:

Observable.window(3, TimeUnit.SECONDS).flatmap(...)