04.10 TIL

2023. 4. 10. 17:26개발일지

SSE를 서버에 배포한 후  45초마다 연결이 끊기는 상황 발생 

SSE에 주기적으로 신호를 보내서 연결을 확인해주는 hearbeat를 보내는 메서드를 추가해서 연결이 유지되도록 변경

 Runnable heartbeatTask = () -> {
            try {
                String heartbeatMessage = "event: heartbeat\ndata: \n\n";
                emitter.send(heartbeatMessage);
            } catch (IOException e) {
                emitter.complete();
                executor.shutdown();
            }
        };

주기적으로 빈 이벤트를 보내는 태스크를 먼저 생성했다.

  executor.scheduleAtFixedRate(heartbeatTask, 0, 10, TimeUnit.SECONDS);

heartbeat를 보통 10~30초 사이에서 정하는경우가 많다고 한다. 

시스템이 높은 실시간성이 필요한 경우, 더 짧은 Heartbeat 주기가 필요하고. 대규모 데이터를 처리하거나 복잡한 연산을 수행하는 경우에는 더 긴 주기를 선택한다.

'개발일지' 카테고리의 다른 글

04.15 TIL (서버)  (0) 2023.04.15
04.12 TIL(Querydsl 성능 향상)  (0) 2023.04.13
04.09 TIL (테스트 코드)  (0) 2023.04.09
04.08 TIL (테스트 코드)  (0) 2023.04.09
04.07 (Refactoring)  (0) 2023.04.07