작성
·
179
0
안녕하세요.
dispose 함수에 Runnable 객체가 전달되는데, emitter 완료와 타임아웃 때 처리되는 로직이 runnable로 만 처리해야 하는 건가요?
아직 rx 프로그래밍에 대한 경험이 없다보니 예제 코드가 관례적인 것인지 아닌지 판단하기 어렵습니다.
답변 1
0
안녕하세요. 대체 휴일이 끼어있다보니 답변이 좀 늦었습니다.
가족하고 함께 해야 되는 시간이 있다보니 답변이 더 늦어진 점 양해 부탁드리겠습니다.
질문하신 부분에 대해서 답변을 드려보자면,
"dispose 함수에 Runnable 객체가 전달되는데, emitter 완료와 타임아웃 때 처리되는 로직이 runnable로 만 처리해야 하는 건가요?"
--> runnable만 처리하라는 법은 없겠지만 제가 만든 예제 상으로는 SseEmitter 의 onCompletion 메서드의 경우에는 runnable을 파라미터로 전달 받아서 후속 처리를 하도록 API에 정의가 되어 있기때문에 관례적으로 사용을 한건 맞습니다. 예제 코드의 흐름 상 세션이 종료될 때 구독을 해지 해주는것이 리소스를 효율적으로 사용하게 만들어줄테니까요. 저는 구독 해지를 세션이 종료 되는 경우에 사용을 했지만 구독 해지는 애플리케이션의 요구사항에 따라서 구독 해지의 상황이 달라질테니 적절하게 대응을 하시면 될 것 같아요.
다른 질문이 있으시면 언제든지 질문 해주시면 감사드리겠습니다.
네~ 답변 감사합니다.