Giriş
Şu satırı dahil ederiz
import reactor.core.publisher.Flux;
Kalıtım şöyle. Flux soyut bir sınıftır
Publisher <- CorePublisher <- Flux
Publisher cold veya hot olabilir
- Cold publisher eğer bir abone yoksa, değer üretmez. Cold publisher veriyi tekrar üretir.
- Hot publisher her yeni gelen aboneye kaldığı yerden veri üretir.
cache metodu - Cold Publisher Sayılabilir
Sonuçları saklar ve yeni gelen aboneye bir daha hesaplama yapmadan döndürür.
Örnek
Şöyle yaparız
Flux<String> movieTheatre = Flux.fromStream(() -> getMovie()).delayElements(Duration.ofSeconds(2)).cache();// you start watching the moviemovieTheatre.subscribe(scene -> System.out.println("You are watching " + scene));// I join after sometimeThread.sleep(5000);movieTheatre.subscribe(scene -> System.out.println("Vinsguru is watching " + scene));
create metodu - Cold Publisher
Flux.create yazısına taşıdım
fromIterable metodu
Flux.fromIterable metodu yazısına taşıdım
fromStream metodu
Flux.fromStream metodu yazısına taşıdım
flatMap metodu
Flux.flatMap metodu yazısına taşıdım
just metodu - Cold publisher
Flux.just metodu yazısına taşıdım.
limitRate metodu - Backpressure İçindir
Flux.limitRate metodu metodu yazısına taşıdım.
onErrorReturn metodu
Flux.onErrorReturn metodu yazısına taşıdım.
Flux.range metodu yazısına taşıdım.
share metodu - Hot Publisher
Hot Publisher haline getirir. Yeni gelen subscriber en baştan tüm mesajları almaz. Şöyle yaparız
Flux<String> movieTheatre = Flux.fromStream(() -> getMovie()).delayElements(Duration.ofSeconds(2)).share();// you start watching the moviemovieTheatre.subscribe(scene -> System.out.println("You are watching " + scene));// I join after sometimeThread.sleep(5000);movieTheatre.subscribe(scene -> System.out.println("Vinsguru is watching " + scene));
switchIfEmpty metodu
Flux.switchIfEmpty metodu yazısına taşıdım.
Flux.zip metodu yazısına taşıdım.
Hiç yorum yok:
Yorum Gönder