Browse Source

multi consumer 설정

master
노승철 2 years ago
parent
commit
2120441166
  1. 10
      src/main/java/com/palnet/process/message/consumer/MessageConsumer.java
  2. 13
      src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java
  3. 11
      src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java
  4. 6
      src/main/resources/application.yml

10
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<CtrCntrlModel> 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;
}
}

13
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<String, CtrCntrlModel> allHistory = gpHistoryShareContext.getAllHistory();
// Key 의 존재하는 데이터는 마지막 서버수신 History Data
if(Objects.nonNull(allHistory)) {
allHistory.forEach((k, v) -> {
Date serverRcvDt = DateUtils.stringToDate(v.getServerRcvDt());
Date serverRcvDt = DateUtils.stringToDatetime(v.getServerRcvDt());
long diffMinute = DateUtils.diffMinute(serverRcvDt, new Date());
long diffSecond = DateUtils.diffSecond(serverRcvDt, new Date());
if(diffMinute > timeLimit) {
if(diffSecond > timeLimit) {
gpHistoryShareContext.removeHistory(k);
}
});
}
}
}

11
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<String, CtrCntrlModel> allHistory = historyShareContext.getAllHistory();
if(Objects.nonNull(allHistory)) {
allHistory.forEach((k, v) -> {
list.add(v);
});
}
//=== 정렬 처리 ==
//기준 : 관제 시작일이 가장 느린순으로 상단에 올린다.

6
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:

Loading…
Cancel
Save