From 28908e1a0dbbf32e87c839724d93bc2a616a1cbd Mon Sep 17 00:00:00 2001 From: HeungTak Lee Date: Fri, 6 Feb 2026 13:42:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EC=BF=BC=EB=A6=AC=20=EC=83=9D?= =?UTF-8?q?=EB=AA=85=EC=A3=BC=EA=B8=B0=20=EA=B4=80=EB=A6=AC=EB=A5=BC=20?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20finally=20=EB=B8=94=EB=A1=9D?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=8B=A8=EC=9D=BC=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 2.2: 쿼리 관리 시스템 통합 - StompTrackController의 status callback에서 activeQueryManager.completeQuery() 제거 - 리소스 정리를 서비스(ChunkedTrack/StompTrack) finally 블록에서 일괄 처리 - 중복 completeQuery 호출 제거로 쿼리 생명주기 관리 단일화 Co-Authored-By: Claude Opus 4.6 --- .../controller/StompTrackController.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/main/java/gc/mda/signal_batch/global/websocket/controller/StompTrackController.java b/src/main/java/gc/mda/signal_batch/global/websocket/controller/StompTrackController.java index 515b4f2..46c3d8c 100644 --- a/src/main/java/gc/mda/signal_batch/global/websocket/controller/StompTrackController.java +++ b/src/main/java/gc/mda/signal_batch/global/websocket/controller/StompTrackController.java @@ -71,13 +71,8 @@ public class StompTrackController { queryId, sessionId, // sessionId 전달 (연결 끊김 감지용) chunk -> sendChunkedDataToUser(userId, chunk), - status -> { - sendStatusToUser(userId, status); - // 완료 시 쿼리 등록 제거 - if ("COMPLETED".equals(status.getStatus()) || "FAILED".equals(status.getStatus())) { - activeQueryManager.completeQuery(sessionId); - } - } + // 리소스 정리는 서비스 finally 블록에서 일괄 처리 + status -> sendStatusToUser(userId, status) ); } else { // 기존 스트리밍 모드 @@ -86,13 +81,8 @@ public class StompTrackController { queryId, sessionId, chunk -> sendChunkToUser(userId, chunk), - status -> { - sendStatusToUser(userId, status); - // 완료 시 쿼리 등록 제거 - if ("COMPLETED".equals(status.getStatus()) || "FAILED".equals(status.getStatus())) { - activeQueryManager.completeQuery(sessionId); - } - } + // 리소스 정리는 서비스 finally 블록에서 일괄 처리 + status -> sendStatusToUser(userId, status) ); }