shjung 2 年之前
父节点
当前提交
bd38d6a045

+ 5 - 1
src/main/java/com/its/op/scheduler/ItsApiAfterTaskCompleted.java

@@ -29,12 +29,16 @@ public class ItsApiAfterTaskCompleted {
     public void executeFcltUserMsgNotify(Long msgNmbr) {
         // 시설물 사용자 유지보수 메시지 작성 완료 후 웹소켓으로 접속한 사용자에게 통보
         try {
+            int broadcastCount = 0;
             TbUserMsgDto.TbUserMsgNotify msg = TbUserMsgDto.TbUserMsgNotify.builder()
                     .msgNmbr(msgNmbr)
                     .build();
             ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("fcltUserMsg", msg);
             String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
-            this.itsWebSocketSessionManager.sendBroadcastUserMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
+            broadcastCount = this.itsWebSocketSessionManager.sendBroadcastUserMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
+            if (broadcastCount > 0) {
+                log.info("executeFcltUserMsgNotify: {} EA.", broadcastCount);
+            }
         }
         catch(JsonProcessingException e){
             log.error("ItsApiAfterTaskCompleted: executeFcltUserMsgNotify Json parsing Exception");

+ 4 - 3
src/main/java/com/its/op/scheduler/ItsOpSigPhaseListener.java

@@ -78,11 +78,12 @@ public class ItsOpSigPhaseListener {
         StopWatch stopWatch = new StopWatch();
         stopWatch.start();
 
+        int broadcastCount = 0;
         try {
             List<TbScSgnlCtlrPhaseDto> sigPhaseDto = this.service.findAllPhaseList(false);
             ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("sigPhaseStts", sigPhaseDto);
             String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
-            this.itsWebSocketSessionManager.sendBroadcastSigPhaseMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
+            broadcastCount = this.itsWebSocketSessionManager.sendBroadcastSigPhaseMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
         }
         catch(JsonProcessingException e){
             log.error("ItsOpSigPhaseListener: TbScSgnlCtlrPhaseDto Json parsing Exception");
@@ -93,8 +94,8 @@ public class ItsOpSigPhaseListener {
 
         stopWatch.stop();
         long totalTimeMillis = stopWatch.getTotalTimeMillis();
-        if (totalTimeMillis > 1000) {
-            log.info("--RUN: ItsOpSigPhaseListener.run: {}, {} ms.", Thread.currentThread().getName(), totalTimeMillis);
+        if (totalTimeMillis > 1000 || broadcastCount > 0) {
+            log.info("--RUN: ItsOpSigPhaseListener.run: {}, {} EA. {} ms.", Thread.currentThread().getName(), broadcastCount, totalTimeMillis);
         }
 
         long delayMillis = delayMilliSeconds - totalTimeMillis;

+ 7 - 3
src/main/java/com/its/op/scheduler/job/FcltSttsJobThread.java

@@ -64,7 +64,10 @@ public class FcltSttsJobThread {
         this.scIxrCmraManager.reload();
 
         stopWatch.stop();
-        log.info("FcltSttsJobThread.reload:--END. {}, {} ms.", Thread.currentThread().getName(), stopWatch.getTotalTimeMillis());
+        long totalTimeMillis = stopWatch.getTotalTimeMillis();
+        if (totalTimeMillis > 1000) {
+            log.info("FcltSttsJobThread.reload:--END. {}, {} ms.", Thread.currentThread().getName(), stopWatch.getTotalTimeMillis());
+        }
     }
 
     protected void notifyFcltStts() {
@@ -72,17 +75,18 @@ public class FcltSttsJobThread {
         stopWatch.start();
 
         // ITS Fclt Stts
+        int broadcastCount = 0;
         FcltSttsListDto itsSttsDto = this.commonSttsService.findAllFcltSttsTotal();
         ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("itsFcltStts", itsSttsDto);
         try {
             String itsSttsJsonData = this.objectMapper.writeValueAsString(itsMessage);
-            this.itsWebSocketSessionManager.sendBroadcastMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
+            broadcastCount = this.itsWebSocketSessionManager.sendBroadcastMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
         }
         catch(JsonProcessingException e){
             log.error("cltSttsJobThread.notify: ItsFcltSttsDto Json parsing Exception: {}", itsSttsDto);
         }
 
         stopWatch.stop();
-        log.info("FcltSttsJobThread.notify:--END. {}, {} ms.", Thread.currentThread().getName(), stopWatch.getTotalTimeMillis());
+        log.info("FcltSttsJobThread.notify:--END. {}, {} EA. {} ms.", Thread.currentThread().getName(), broadcastCount, stopWatch.getTotalTimeMillis());
     }
 }

+ 11 - 3
src/main/java/com/its/op/websocket/ItsWebSocketSessionManager.java

@@ -8,6 +8,7 @@ import org.springframework.web.socket.WebSocketSession;
 
 import javax.annotation.PostConstruct;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
 
 @Slf4j
 @Component
@@ -63,26 +64,33 @@ public class ItsWebSocketSessionManager {
         log.info("Sessions: {}", this.sessionMap.toString());
     }
 
-    public void sendBroadcastMessage(String command, TextMessage message) {
+    public int sendBroadcastMessage(String command, TextMessage message) {
         this.sessionMap.forEach((key, session) -> {
             session.sendMessage(command, message);
         });
+        return this.sessionMap.size();
     }
 
-    public void sendBroadcastSigPhaseMessage(String command, TextMessage message) {
+    public int sendBroadcastSigPhaseMessage(String command, TextMessage message) {
+        AtomicInteger broadcastCount = new AtomicInteger(0);
         this.sessionMap.forEach((key, session) -> {
             if ("wall".equals(session.getGroupId())) {
                 session.sendMessage(command, message);
+                broadcastCount.getAndIncrement();
             }
         });
+        return broadcastCount.get();
     }
 
-    public void sendBroadcastUserMessage(String command, TextMessage message) {
+    public int sendBroadcastUserMessage(String command, TextMessage message) {
+        AtomicInteger broadcastCount = new AtomicInteger(0);
         this.sessionMap.forEach((key, session) -> {
             if (!"wall".equals(session.getGroupId())) {
                 session.sendMessage(command, message);
+                broadcastCount.getAndIncrement();
             }
         });
+        return broadcastCount.get();
     }
 
 }