浏览代码

unit stts job add

shjung 3 年之前
父节点
当前提交
b279191b46

+ 14 - 2
src/main/java/com/its/api/scheduler/ItsApiScheduler.java

@@ -3,6 +3,7 @@ package com.its.api.scheduler;
 import com.its.api.config.JobConfig;
 import com.its.api.scheduler.job.CctvPsetScnrJobThread;
 import com.its.api.scheduler.job.FcltSttsJobThread;
+import com.its.api.scheduler.job.UnitSttsJobThread;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
@@ -21,6 +22,7 @@ public class ItsApiScheduler {
     private final JobConfig jobConfig;
     private final CctvPsetScnrJobThread cctvPsetScnrThread;
     private final FcltSttsJobThread fcltSttsJobThread;
+    private final UnitSttsJobThread unitSttsJobThread;
 
     @PreDestroy
     public void onShutDown() {
@@ -38,11 +40,21 @@ public class ItsApiScheduler {
         }
     }
 
+    /**
+     * 시설물 상태정보 조회 및 전송
+     */
     @Async
-    @Scheduled(cron = "0/30 * * * * *")  // 30초 주기 작업 실행
+    @Scheduled(cron = "20 * * * * *")  // 60초 주기 작업 실행
     public void pollingFcltStts() {
         log.info("START FcltSttsJob");
-        fcltSttsJobThread.run();
+        this.fcltSttsJobThread.run();
+    }
+
+    @Async
+    @Scheduled(cron = "10 * * * * *")  // 60초 주기 작업 실행
+    public void pollingUnitStts() {
+        log.info("START UnitSttsJob");
+        this.unitSttsJobThread.run();
     }
 
     @Async

+ 1 - 1
src/main/java/com/its/api/scheduler/job/FcltSttsJobThread.java

@@ -58,7 +58,7 @@ public class FcltSttsJobThread {
             ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(bisMessage.getCommand(), new TextMessage(bitSttsJsonData));
         }
         catch(JsonProcessingException e){
-            log.error("FcltSttsJobThread BisFcltSttsDto Json parsing Exception: {}, {}", itsSttsDto, e.getMessage());
+            log.error("FcltSttsJobThread BisFcltSttsDto Json parsing Exception: {}, {}", bitSttsDto, e.getMessage());
         }
 
         stopWatch.stop();

+ 68 - 0
src/main/java/com/its/api/scheduler/job/UnitSttsJobThread.java

@@ -0,0 +1,68 @@
+package com.its.api.scheduler.job;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.its.api.bis.service.BisProcessService;
+import com.its.api.its.model.dto.unit.TbUnitSystSttsDto;
+import com.its.api.its.service.unit.TbUnitSystService;
+import com.its.api.websocket.ItsWebSocketMessage;
+import com.its.api.websocket.ItsWebSocketSessionManager;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StopWatch;
+import org.springframework.web.socket.TextMessage;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+
+@Slf4j
+@AllArgsConstructor
+@Service
+public class UnitSttsJobThread {
+
+    private final TbUnitSystService unitSystService;
+    private final BisProcessService bisService;
+    private ObjectMapper mapper;
+
+    @PostConstruct
+    private void init() {
+        this.mapper = new ObjectMapper();
+        log.info("{}", this);
+    }
+
+    @Async("schJobExecutor")
+    public void run() {
+
+        log.info("START: UnitSttsJobThread.run: {}", Thread.currentThread().getName());
+
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start();
+
+        // ITS Unit Stts
+        List<TbUnitSystSttsDto> itsUnitStts = this.unitSystService.findAllStts();
+        ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("itsUnitStts", itsUnitStts);
+        try {
+            String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
+            ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
+        }
+        catch(JsonProcessingException e){
+            log.error("UnitSttsJobThread ItsFcltSttsDto Json parsing Exception: {}, {}", itsUnitStts, e.getMessage());
+        }
+
+        // BIS Unit Stts
+        List<TbUnitSystSttsDto> bitUnitDto = this.bisService.findAllStts();
+        ItsWebSocketMessage bisMessage = new ItsWebSocketMessage("itsUnitStts", bitUnitDto);
+        try {
+            String bitSttsJsonData = this.mapper.writeValueAsString(bisMessage);
+            ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(bisMessage.getCommand(), new TextMessage(bitSttsJsonData));
+        }
+        catch(JsonProcessingException e){
+            log.error("UnitSttsJobThread BisFcltSttsDto Json parsing Exception: {}, {}", bitUnitDto, e.getMessage());
+        }
+
+        stopWatch.stop();
+        log.info("--END: UnitSttsJobThread.run: {}, {} ms.", Thread.currentThread().getName(), stopWatch.getTotalTimeMillis());
+    }
+}