Ich versuche, meinen Kopf um reaktive Programmierung zu bekommen, damit ich es möchte fragen, ob jeder Vorteil hier mit einem Flux ist:Mit einem Flux anstelle einer For-Schleife, irgendwelche Vorteile?
override fun notifyObserversOnMessage(message: Message) {
Flux.fromStream(observers.stream())
.map { observer -> Mono.just(observer.reactOnMessage(message)) }
.subscribe()
}
statt:
override fun notifyObserversOnMessage(message: Message) {
for (observer in observers) {
observer.reactOnMessage(message)
}
}
es auf Hängt die Arbeit, die jeder Beobachter macht und ob das IO ist oder nicht?
Wenn jeder Beobachter die Nachricht in einen DB schreibt, wird es asynchron mit einem Flux gemacht oder die Schleife wird immer noch sequenziell laufen? – Orestis
@Orestis Wie Sie es geschrieben haben, ist es sequenziell. Eine Möglichkeit, um Parallelität zu erhalten, ist etwas wie 'beobachter.zuFlux(). FlatMap {Beobachter -> Mono.fromCallable {observer.reactOnMessage (Nachricht)} .subscribeOn (Schedulers.parallel())} .subscribe()'. – ephemient