결과 데이터 로그 테이블로 이동 기능 추가
@2477085a37539fd19709cd5d6ac4ee634bb95f3f
--- src/main/java/com/munjaon/client/config/RunnerConfiguration.java
+++ src/main/java/com/munjaon/client/config/RunnerConfiguration.java
... | ... | @@ -1,6 +1,7 @@ |
| 1 | 1 |
package com.munjaon.client.config; |
| 2 | 2 |
|
| 3 | 3 |
import com.munjaon.client.server.service.CollectClientService; |
| 4 |
+import com.munjaon.client.server.service.DataMoveService; |
|
| 4 | 5 |
import com.munjaon.client.server.service.PropertyLoader; |
| 5 | 6 |
import com.munjaon.client.server.service.ReportClientService; |
| 6 | 7 |
import lombok.RequiredArgsConstructor; |
... | ... | @@ -119,4 +120,17 @@ |
| 119 | 120 |
} |
| 120 | 121 |
return args -> System.out.println("Runner Bean #2");
|
| 121 | 122 |
} |
| 123 |
+ |
|
| 124 |
+ @Bean |
|
| 125 |
+ @Order(3) |
|
| 126 |
+ public CommandLineRunner getRunnerBeanForMove() {
|
|
| 127 |
+ try {
|
|
| 128 |
+ String serviceName = "LOG_MOVE"; |
|
| 129 |
+ DataMoveService dataMoveService = new DataMoveService(serviceName); |
|
| 130 |
+ dataMoveService.start(); |
|
| 131 |
+ } catch (Exception e) {
|
|
| 132 |
+ throw new RuntimeException(e); |
|
| 133 |
+ } |
|
| 134 |
+ return args -> System.out.println("Runner Bean #2");
|
|
| 135 |
+ } |
|
| 122 | 136 |
} |
--- src/main/java/com/munjaon/client/mariadb/service/MariaDBService.java
+++ src/main/java/com/munjaon/client/mariadb/service/MariaDBService.java
... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 |
import lombok.RequiredArgsConstructor; |
| 6 | 6 |
import lombok.extern.slf4j.Slf4j; |
| 7 | 7 |
import org.springframework.stereotype.Service; |
| 8 |
+import org.springframework.transaction.annotation.Transactional; |
|
| 8 | 9 |
|
| 9 | 10 |
import java.util.List; |
| 10 | 11 |
|
... | ... | @@ -49,4 +50,17 @@ |
| 49 | 50 |
public int deleteFromDeliver(String msgId) {
|
| 50 | 51 |
return mariaDBMapper.deleteFromDeliver(msgId); |
| 51 | 52 |
} |
| 53 |
+ |
|
| 54 |
+ @Transactional |
|
| 55 |
+ public void moveToDeliver() {
|
|
| 56 |
+ List<MunjaonMsg> list = selectToMove(); |
|
| 57 |
+ if (list == null || list.size() == 0) {
|
|
| 58 |
+ return; |
|
| 59 |
+ } |
|
| 60 |
+ log.debug("[CLASS : {} : MOVE_COUNT : {}", this.getClass(), list.size());
|
|
| 61 |
+ for (MunjaonMsg msg : list) {
|
|
| 62 |
+ insertToLog(msg.getMsgId()); |
|
| 63 |
+ deleteFromDeliver(msg.getMsgId()); |
|
| 64 |
+ } |
|
| 65 |
+ } |
|
| 52 | 66 |
} |
+++ src/main/java/com/munjaon/client/server/service/DataMoveService.java
... | ... | @@ -0,0 +1,62 @@ |
| 1 | +package com.munjaon.client.server.service; | |
| 2 | + | |
| 3 | +import com.munjaon.client.service.DatabaseTypeWorker; | |
| 4 | +import org.json.simple.JSONObject; | |
| 5 | + | |
| 6 | +public class DataMoveService extends Service { | |
| 7 | + private DatabaseTypeWorker worker; | |
| 8 | + | |
| 9 | + public DataMoveService(String serviceName) { | |
| 10 | + super(serviceName); | |
| 11 | + } | |
| 12 | + | |
| 13 | + @Override | |
| 14 | + public void checkReady() { | |
| 15 | + worker = DatabaseTypeWorker.find(System.getProperty("DBMS")); | |
| 16 | + if (worker == null) { | |
| 17 | + saveSystemLog("[checkReady][DBMS : " + System.getProperty("DBMS") + " is not ready]"); | |
| 18 | + return; | |
| 19 | + } | |
| 20 | + | |
| 21 | + saveSystemLog("[checkReady][DBMS : " + System.getProperty("DBMS") + " is ready]"); | |
| 22 | + this.IS_READY_YN = worker.checkTableExists(); | |
| 23 | + } | |
| 24 | + | |
| 25 | + @Override | |
| 26 | + public void initResources() { | |
| 27 | + | |
| 28 | + } | |
| 29 | + | |
| 30 | + @Override | |
| 31 | + public void releaseResources() { | |
| 32 | + | |
| 33 | + } | |
| 34 | + | |
| 35 | + @Override | |
| 36 | + public void doService() { | |
| 37 | + while (isRun()) { | |
| 38 | + try { | |
| 39 | + messageService(); | |
| 40 | + } catch (Exception e) { | |
| 41 | + throw new RuntimeException(e); | |
| 42 | + } | |
| 43 | + } | |
| 44 | + } | |
| 45 | + | |
| 46 | + private void messageService() { | |
| 47 | + try { | |
| 48 | + while (isRun()) { | |
| 49 | + worker.moveToDeliver(); | |
| 50 | + Thread.sleep(3000L); | |
| 51 | + } | |
| 52 | + } catch (InterruptedException e) { | |
| 53 | + throw new RuntimeException(e); | |
| 54 | + } catch (Exception e) { | |
| 55 | + throw new RuntimeException(e); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + @Override | |
| 59 | + public JSONObject monitorService() { | |
| 60 | + return null; | |
| 61 | + } | |
| 62 | +} |
--- src/main/java/com/munjaon/client/server/service/ReportClientService.java
+++ src/main/java/com/munjaon/client/server/service/ReportClientService.java
... | ... | @@ -120,7 +120,7 @@ |
| 120 | 120 |
private void messageService() {
|
| 121 | 121 |
|
| 122 | 122 |
try {
|
| 123 |
- while (true) {
|
|
| 123 |
+ while (isRun()) {
|
|
| 124 | 124 |
headBuffer.clear(); |
| 125 | 125 |
int recvCount = socketChannel.read(headBuffer); |
| 126 | 126 |
// saveSystemLog("recvCount : " + recvCount);
|
--- src/main/java/com/munjaon/client/service/DatabaseTypeWorker.java
+++ src/main/java/com/munjaon/client/service/DatabaseTypeWorker.java
... | ... | @@ -57,6 +57,12 @@ |
| 57 | 57 |
MariaDBService mariaDBService = (MariaDBService) DatabaseService.MARIADB_SERVICE.getService(); |
| 58 | 58 |
return mariaDBService.deleteFromDeliver(msgId); |
| 59 | 59 |
} |
| 60 |
+ |
|
| 61 |
+ @Override |
|
| 62 |
+ public void moveToDeliver() {
|
|
| 63 |
+ MariaDBService mariaDBService = (MariaDBService) DatabaseService.MARIADB_SERVICE.getService(); |
|
| 64 |
+ mariaDBService.moveToDeliver(); |
|
| 65 |
+ } |
|
| 60 | 66 |
}, |
| 61 | 67 |
TYPE_OF_MYSQL("MYSQL") {
|
| 62 | 68 |
@Override |
... | ... | @@ -98,6 +104,11 @@ |
| 98 | 104 |
public int deleteFromDeliver(String msgId) {
|
| 99 | 105 |
return 0; |
| 100 | 106 |
} |
| 107 |
+ |
|
| 108 |
+ @Override |
|
| 109 |
+ public void moveToDeliver() {
|
|
| 110 |
+ |
|
| 111 |
+ } |
|
| 101 | 112 |
}; |
| 102 | 113 |
|
| 103 | 114 |
DatabaseTypeWorker(final String name) {
|
... | ... | @@ -122,4 +133,5 @@ |
| 122 | 133 |
public abstract List<MunjaonMsg> selectToExpire(String expireTime); |
| 123 | 134 |
public abstract int insertToLog(String msgId); |
| 124 | 135 |
public abstract int deleteFromDeliver(String msgId); |
| 136 |
+ public abstract void moveToDeliver(); |
|
| 125 | 137 |
} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?