From 3d75e1bfa893497bbcf30a26c3bd0873f69fa937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Wed, 13 Jul 2022 15:00:07 +0900 Subject: [PATCH] =?UTF-8?q?message=20server=20host=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/palnet/biz/config/MessageConfig.java | 5 +++ .../service/impl/MessageServiceImpl.java | 42 +++++++++---------- .../biz/scheduler/ctr/CtrScheduler.java | 4 +- .../ctr/service/CtrSchedulerService.java | 15 ++++--- .../palnet/comn/collection/GPCollection.java | 1 - src/main/resources/application.yml | 2 +- 6 files changed, 33 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/palnet/biz/config/MessageConfig.java b/src/main/java/com/palnet/biz/config/MessageConfig.java index a29ecd4..b899e99 100644 --- a/src/main/java/com/palnet/biz/config/MessageConfig.java +++ b/src/main/java/com/palnet/biz/config/MessageConfig.java @@ -1,8 +1,12 @@ package com.palnet.biz.config; +import com.rabbitmq.client.ShutdownSignalException; +import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.*; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.connection.Connection; import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.connection.ConnectionListener; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.context.annotation.Bean; @@ -10,6 +14,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; @Configuration +@Slf4j public class MessageConfig { private final Environment env; diff --git a/src/main/java/com/palnet/biz/message/service/impl/MessageServiceImpl.java b/src/main/java/com/palnet/biz/message/service/impl/MessageServiceImpl.java index 7530942..1e6c17b 100644 --- a/src/main/java/com/palnet/biz/message/service/impl/MessageServiceImpl.java +++ b/src/main/java/com/palnet/biz/message/service/impl/MessageServiceImpl.java @@ -45,6 +45,7 @@ public class MessageServiceImpl implements MessageService { model.setAreaTrnsYn("N"); model.setControlStartDt(DateUtils.getCurrentTime()); + // 기체 식별번호의 관제 ID 저장 (single ton) shareContext.putIdntfKey(model.getObjectId(), controlID); } else { model.setControlId(shareContext.getIndtfKey(model.getObjectId())); @@ -52,36 +53,31 @@ public class MessageServiceImpl implements MessageService { model.setAreaTrnsYn("E"); } - /* 메세지 서버에게 위임 */ + /* Websocket Model 메세지 서버로 위임 */ this.sendToWebsocket(model); -// if(model.getTypeCd().equals("01")) { -// //마스터 정보에저장 -// //식별번호로 제작번호 알아오기 -// String prodNumber = ptyDronQueryRepository.findIdntfNumByProdNumber(model.getObjectId()); -// model.setProdNumber(prodNumber); -// -// ctrCntrlJpaService.insertCtrCntrlBas(model); -// } -// if(model.getTypeCd().equals("99")) { -// //마스터 정보에 종료 처리 저장 -// model.setEndTypeCd("01"); -// ctrCntrlJpaService.updateCtrCntrlBas(model); -// } -// -// CtrCntrlHstry ctrCntrlHstry = ctrCntrlJpaService.insertCtrCntrlHstry(model); -// -// if(model.getTypeCd().equals("01") || model.getTypeCd().equals("99")) { -// ctrCntrlJpaService.insertCtrCntrlHstryArea(model, ctrCntrlHstry.getHstrySno()); -// } + if(model.getTypeCd().equals("01")) { + //마스터 정보에저장 + //식별번호로 제작번호 알아오기 + String prodNumber = ptyDronQueryRepository.findIdntfNumByProdNumber(model.getObjectId()); + model.setProdNumber(prodNumber); + + ctrCntrlJpaService.insertCtrCntrlBas(model); + } + + CtrCntrlHstry ctrCntrlHstry = ctrCntrlJpaService.insertCtrCntrlHstry(model); + + if(model.getTypeCd().equals("01") || model.getTypeCd().equals("99")) { + ctrCntrlJpaService.insertCtrCntrlHstryArea(model, ctrCntrlHstry.getHstrySno()); + } } } public void sendToWebsocket(GPDatabaseModel model) { - String s =""; + String json =""; try { - s = objectMapper.writeValueAsString(model); + json = objectMapper.writeValueAsString(model); } catch (JsonProcessingException e) { e.printStackTrace(); } @@ -89,7 +85,7 @@ public class MessageServiceImpl implements MessageService { /* Websocket 서버로 전달 할 드론 데이터 */ rabbitTemplate.convertAndSend( Objects.requireNonNull(env.getProperty("message.websocket.queue-name")), - s + json ); } } diff --git a/src/main/java/com/palnet/biz/scheduler/ctr/CtrScheduler.java b/src/main/java/com/palnet/biz/scheduler/ctr/CtrScheduler.java index f96d657..4fcd54e 100644 --- a/src/main/java/com/palnet/biz/scheduler/ctr/CtrScheduler.java +++ b/src/main/java/com/palnet/biz/scheduler/ctr/CtrScheduler.java @@ -18,9 +18,7 @@ public class CtrScheduler { @Autowired private CtrSchedulerService service; - - private Logger logger = LoggerFactory.getLogger(getClass()); @@ -28,7 +26,7 @@ public class CtrScheduler { * 실행 시점 : 10초에 한번 * 실행 내용 : 특정시간 들어오지 않는 데이터 삭제 처리 */ - @Scheduled(fixedDelay = 1000 * 60) + @Scheduled(fixedDelay = 1000 * 60 * 5) public void removeCollection() { logger.debug("=================== {removeCollection} ===================== "); service.remove(); diff --git a/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java b/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java index b4b0b31..90d9510 100644 --- a/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java +++ b/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java @@ -1,9 +1,6 @@ package com.palnet.biz.scheduler.ctr.service; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository; @@ -83,11 +80,13 @@ public class CtrSchedulerService { keys.forEach((key, value) -> { CtrCntrlHstry history = ctrCntrlHstryRepository.findFirstByCntrlIdOrderBySrvrRcvDtDesc(value); - long diffMinute = DateUtils.diffMinute(history.getSrvrRcvDt(), new Date()); - if(diffMinute > GP_REMOVE_TIME) { - ctrCntrlBasRepository.updateCntrlEndType("99", DateUtils.getCurrentTime(), history.getCntrlId()); + if(Objects.nonNull(history)) { + long diffMinute = DateUtils.diffMinute(history.getSrvrRcvDt(), new Date()); + if(diffMinute > GP_REMOVE_TIME) { + ctrCntrlBasRepository.updateCntrlEndType("01", DateUtils.getCurrentTime(), history.getCntrlId()); - dataShareContext.removeIdntfKey(key); + dataShareContext.removeIdntfKey(key); + } } }); } diff --git a/src/main/java/com/palnet/comn/collection/GPCollection.java b/src/main/java/com/palnet/comn/collection/GPCollection.java index 95c4988..bba7119 100644 --- a/src/main/java/com/palnet/comn/collection/GPCollection.java +++ b/src/main/java/com/palnet/comn/collection/GPCollection.java @@ -44,7 +44,6 @@ public class GPCollection { model.setAreaTrnsYn("N"); model.setControlStartDt(DateUtils.getCurrentTime()); }else { - model = nowControl.get(data.getObjectId()); model.setTypeCd("02"); model.setAreaTrnsYn("E"); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 085a50f..5e480cb 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -46,7 +46,7 @@ spring: # format_sql: true format_sql: false rabbitmq: - host: localhost + host: 192.168.0.24 port: 5672 username: guest password: guest