결과 데이터 로그 테이블로 이동 기능 추가

This commit is contained in:
dsjang 2024-08-01 01:46:18 +09:00
parent 50cccb9bdc
commit 2477085a37
5 changed files with 103 additions and 1 deletions

View File

@ -1,6 +1,7 @@
package com.munjaon.client.config;
import com.munjaon.client.server.service.CollectClientService;
import com.munjaon.client.server.service.DataMoveService;
import com.munjaon.client.server.service.PropertyLoader;
import com.munjaon.client.server.service.ReportClientService;
import lombok.RequiredArgsConstructor;
@ -119,4 +120,17 @@ public class RunnerConfiguration {
}
return args -> System.out.println("Runner Bean #2");
}
@Bean
@Order(3)
public CommandLineRunner getRunnerBeanForMove() {
try {
String serviceName = "LOG_MOVE";
DataMoveService dataMoveService = new DataMoveService(serviceName);
dataMoveService.start();
} catch (Exception e) {
throw new RuntimeException(e);
}
return args -> System.out.println("Runner Bean #2");
}
}

View File

@ -5,6 +5,7 @@ import com.munjaon.client.model.MunjaonMsg;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -49,4 +50,17 @@ public class MariaDBService {
public int deleteFromDeliver(String msgId) {
return mariaDBMapper.deleteFromDeliver(msgId);
}
@Transactional
public void moveToDeliver() {
List<MunjaonMsg> list = selectToMove();
if (list == null || list.size() == 0) {
return;
}
log.debug("[CLASS : {} : MOVE_COUNT : {}", this.getClass(), list.size());
for (MunjaonMsg msg : list) {
insertToLog(msg.getMsgId());
deleteFromDeliver(msg.getMsgId());
}
}
}

View File

@ -0,0 +1,62 @@
package com.munjaon.client.server.service;
import com.munjaon.client.service.DatabaseTypeWorker;
import org.json.simple.JSONObject;
public class DataMoveService extends Service {
private DatabaseTypeWorker worker;
public DataMoveService(String serviceName) {
super(serviceName);
}
@Override
public void checkReady() {
worker = DatabaseTypeWorker.find(System.getProperty("DBMS"));
if (worker == null) {
saveSystemLog("[checkReady][DBMS : " + System.getProperty("DBMS") + " is not ready]");
return;
}
saveSystemLog("[checkReady][DBMS : " + System.getProperty("DBMS") + " is ready]");
this.IS_READY_YN = worker.checkTableExists();
}
@Override
public void initResources() {
}
@Override
public void releaseResources() {
}
@Override
public void doService() {
while (isRun()) {
try {
messageService();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
private void messageService() {
try {
while (isRun()) {
worker.moveToDeliver();
Thread.sleep(3000L);
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public JSONObject monitorService() {
return null;
}
}

View File

@ -120,7 +120,7 @@ public class ReportClientService extends Service {
private void messageService() {
try {
while (true) {
while (isRun()) {
headBuffer.clear();
int recvCount = socketChannel.read(headBuffer);
// saveSystemLog("recvCount : " + recvCount);

View File

@ -57,6 +57,12 @@ public enum DatabaseTypeWorker {
MariaDBService mariaDBService = (MariaDBService) DatabaseService.MARIADB_SERVICE.getService();
return mariaDBService.deleteFromDeliver(msgId);
}
@Override
public void moveToDeliver() {
MariaDBService mariaDBService = (MariaDBService) DatabaseService.MARIADB_SERVICE.getService();
mariaDBService.moveToDeliver();
}
},
TYPE_OF_MYSQL("MYSQL") {
@Override
@ -98,6 +104,11 @@ public enum DatabaseTypeWorker {
public int deleteFromDeliver(String msgId) {
return 0;
}
@Override
public void moveToDeliver() {
}
};
DatabaseTypeWorker(final String name) {
@ -122,4 +133,5 @@ public enum DatabaseTypeWorker {
public abstract List<MunjaonMsg> selectToExpire(String expireTime);
public abstract int insertToLog(String msgId);
public abstract int deleteFromDeliver(String msgId);
public abstract void moveToDeliver();
}