Events Stream
Representação reativa de um fluxo de eventos
-
Função: tratar de forma diferente com base em uma requisição e resposta de um media type específico
-
Sintaxe
-
.interval(...)
-
Função: intervalo entre cada resposta (stream) enviada para o cliente
-
Parâmetro(s)
- Duration: delay entre cada envio de resposta
-
-
.zip(...)
-
Função: enviar vários fluxos de dados (stream), com um intervalo específico (definido no
.interval(...)
), até que todos os dados do evento seja carregados e enviados para o cliente -
Parâmetro(s)
-
Publisher<? extends Long>: intervalo de tempo entre cada envio de um fluxo de dados
-
Publisher<? extends T>: objeto(s) que serão enviados para o cliente
T = Classe do objeto a ser enviado
-
-
-
-
Exemplo (Fonte: spring-webflux)
@GetMapping( path = "/events", produces = TEXT_EVENT_STREAM_VALUE ) public Flux<Tuple2<Long, Playlist>> findByEvents() { Flux<Long> interval = Flux.interval(Duration.ofSeconds(10)); Flux<Playlist> events = PLAYLIST_SERVICE.findAll(); log.info("Events passou aqui"); return Flux.zip(interval, events); }