15 Ocak 2021 Cuma

SpringWebFlux Flux Sınıfı

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 movie
movieTheatre.subscribe(scene -> System.out.println("You are watching " + scene));

// I join after sometime
Thread.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.

range metodu - Cold Publisher
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 movie
movieTheatre.subscribe(scene -> System.out.println("You are watching " + scene));

// I join after sometime
Thread.sleep(5000);
movieTheatre.subscribe(scene -> System.out.println("Vinsguru is watching " + scene));
switchIfEmpty  metodu
Flux.switchIfEmpty metodu yazısına taşıdım.

zip metodu
Flux.zip metodu yazısına taşıdım.



Hiç yorum yok:

Yorum Gönder