diff --git a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java index c0fcabc..be77f23 100644 --- a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java +++ b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java @@ -12,7 +12,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; @Component @@ -40,7 +39,6 @@ public class MessageConsumer { } public CtrCntrlModel modelConvert(final GPDatabaseModel dataInfo) { -// List list = new ArrayList<>(); CtrCntrlModel model = new CtrCntrlModel(); model.setObjectId(dataInfo.getObjectId()); @@ -69,14 +67,6 @@ public class MessageConsumer { model.setSensorO3(dataInfo.getSensorO3()); model.setSensorDust(dataInfo.getSensorDust()); -// list.add(model); - - - //=== 정렬 처리 == - //기준 : 관제 시작일이 가장 느린순으로 상단에 올린다. -// list.sort(Comparator.reverseOrder()); - -// return list; return model; } } diff --git a/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java b/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java index 1da7085..e624e6e 100644 --- a/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java +++ b/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java @@ -9,30 +9,35 @@ import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.Objects; @Component public class GpHistoryScheduler { - private final int timeLimit = 5; + private final int timeLimit = 10; private final GPHistoryShareContext gpHistoryShareContext; public GpHistoryScheduler(GPHistoryShareContext gpHistoryShareContext) { this.gpHistoryShareContext = gpHistoryShareContext; } - @Scheduled(fixedDelay = 1000 * 60 * 5) + /* Client 노출 시간 Test 10초 */ + @Scheduled(fixedDelay = 1000 * 10) public void removeHistory() { Map allHistory = gpHistoryShareContext.getAllHistory(); // Key 의 존재하는 데이터는 마지막 서버수신 History Data - allHistory.forEach((k, v) -> { - Date serverRcvDt = DateUtils.stringToDate(v.getServerRcvDt()); - long diffMinute = DateUtils.diffMinute(serverRcvDt, new Date()); - - if(diffMinute > timeLimit) { - gpHistoryShareContext.removeHistory(k); - } - }); + if(Objects.nonNull(allHistory)) { + allHistory.forEach((k, v) -> { + Date serverRcvDt = DateUtils.stringToDatetime(v.getServerRcvDt()); + long diffMinute = DateUtils.diffMinute(serverRcvDt, new Date()); + long diffSecond = DateUtils.diffSecond(serverRcvDt, new Date()); + + if(diffSecond > timeLimit) { + gpHistoryShareContext.removeHistory(k); + } + }); + } } } diff --git a/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java b/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java index 302d828..a7d9a67 100644 --- a/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java +++ b/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java @@ -3,24 +3,23 @@ package com.palnet.server.task.ctr.service; import com.palnet.comn.model.CtrCntrlModel; import com.palnet.comn.model.GPHistoryShareContext; -import com.palnet.process.message.consumer.MessageConsumer; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Comparator; import java.util.Map; +import java.util.Objects; @Service @Slf4j +@RequiredArgsConstructor public class CtrCntrlTaskService { - @Autowired - private GPHistoryShareContext historyShareContext; - + private final GPHistoryShareContext historyShareContext; /** * Websocket 을 통해 전달될 위치 정보를 관리 @@ -31,9 +30,11 @@ public class CtrCntrlTaskService { Map allHistory = historyShareContext.getAllHistory(); - allHistory.forEach((k, v) -> { - list.add(v); - }); + if(Objects.nonNull(allHistory)) { + allHistory.forEach((k, v) -> { + list.add(v); + }); + } //=== 정렬 처리 == //기준 : 관제 시작일이 가장 느린순으로 상단에 올린다. diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e112598..ab14b0e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,6 +7,12 @@ spring: port: 5672 username: guest password: guest + listener: + simple: + max-concurrency: 8 + concurrency: 4 + + netty: task: