티스토리 뷰

learning

병합(Merge, 6/12)

눈침침 2021. 3. 16. 12:47

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를 만들어내는 예!!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함