Backpressure Example 코드 질문드립니다
저도 이거에 대해서 많은 고민이 있었는데 제가 찾아낸 해답은 아래와 같습니다.먼저 질문 주신 부분의 코드에서는 에러가 발생한 상황이 맞습니다. 그런데 왜 로그에서 에러가 보이지 않는가하면 아직 에러가 로깅이 출력되지 못한 상황으로 보여집니다.아래의 TImeUitls.sleep(5000L) 을 늘리게되면 제가 첨부한 사진처럼 OnNext() 가 전부 출력된 이후에 error 로그가 찍히게 됩니다.(사진)다른 쓰레드에서 동작하니 중간에 발생하고 로그를 적어야하는거아니냐? 라는 의문이 드실수도 있는데 GPT를 통한 답변입니다.예외는 parallel-2 (emit 쪽) 스레드에서 발생했지만,subscribe()에 등록된 onError 콜백은 parallel-1 (consume 쪽) 워커에서 실행되는 것.즉:onBackpressureError() → queue.offer() 실패 → 예외 발생 ← 이건 emit 쪽 (parallel-2)이 예외는 downstream으로 전파됨리액터는 전파된 예외를 subscribe(onNext, onError)에서 처리함subscribe에서 실행되는 onError는 publishOn() 이후이므로 consume 워커 (parallel-1)에서 실행라고 하네요. 저도 공부하면서 궁금했던 내용이였는데 비슷한 질문인것 같아서 답변남깁니다.