Tech.io의 'Reactive Programming with Reactor 3'을 공부하면서 정리하는 글입니다.
시퀀스 병합은 여러 Publisher로 부터
값을 구독하여 하나의 Flux
로 데이터를 전달하는 것을 의미한다.
문제풀이
// TODO Merge flux1 and flux2 values with interleave
Flux<User> mergeFluxWithInterleave(Flux<User> flux1, Flux<User> flux2) {
return Flux.merge(flux1, flux2);
}
Flux.merge: Publisher 의 순서와 상관없이 데이터 발생할 때마다 바로바로 Flux로 전달.
// TODO Merge flux1 and flux2 values with no interleave (flux1 values and then flux2 values)
Flux<User> mergeFluxWithNoInterleave(Flux<User> flux1, Flux<User> flux2) {
return Flux.concat(flux1, flux2);
}
Flux.concat: 첫번째 인자로 들어온 Publisher
의 발행이 종료될 때까지 데이터를 전달한 후, 다음 인자의 Publisher
를 전달함
//========================================================================================
// TODO Create a Flux containing the value of mono1 then the value of mono2
Flux<User> createFluxFromMultipleMono(Mono<User> mono1, Mono<User> mono2) {
return Flux.concat(mono1, mono2);
}
Mono
두개로 부터 Flux
를 만들어내는 예!!