diff --git a/build.gradle b/build.gradle index 5cf2b9a..60524ab 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ configurations { repositories { mavenCentral() maven { - url 'https://maven.cubrid.org' + url = 'https://maven.cubrid.org' } } /* diff --git a/src/docs/script/startup.sh b/src/docs/script/startup.sh index 68a53ae..d937d27 100644 --- a/src/docs/script/startup.sh +++ b/src/docs/script/startup.sh @@ -1,4 +1,4 @@ #!/bin/sh AGENT_HOME=/home/dfxagent/agent TODAY=$(date "+%Y%m%d") -java -jar $AGENT_HOME/lib/dfxagent.jar --setting.file=$AGENT_HOME/conf/settings.json > $AGENT_HOME/logs/agent.$TODAY.log & \ No newline at end of file +java -jar $AGENT_HOME/lib/dfxagent.jar --setting.file=$AGENT_HOME/conf/settings.json & \ No newline at end of file diff --git a/src/docs/settings-examples/dfxagent-bd-test-cubrid-local.json b/src/docs/settings-examples/dfxagent-bd-test-cubrid-local.json index 3779e8a..45bc6bb 100644 --- a/src/docs/settings-examples/dfxagent-bd-test-cubrid-local.json +++ b/src/docs/settings-examples/dfxagent-bd-test-cubrid-local.json @@ -35,7 +35,8 @@ "packages": [ { "com.bsmlab.dfx.agent": "DEBUG", - "jdbc.sqlonly": "DEBUG" + "jdbc.sqlonly": "DEBUG", + "org.springframework": "INFO" } ] }, diff --git a/src/main/java/com/bsmlab/dfx/agent/config/DfxAgentConfiguration.java b/src/main/java/com/bsmlab/dfx/agent/config/DfxAgentConfiguration.java index 91c5057..c2ae54a 100644 --- a/src/main/java/com/bsmlab/dfx/agent/config/DfxAgentConfiguration.java +++ b/src/main/java/com/bsmlab/dfx/agent/config/DfxAgentConfiguration.java @@ -23,7 +23,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -32,7 +31,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.*; -import java.util.concurrent.Executor; @Slf4j @Getter @@ -183,7 +181,7 @@ public class DfxAgentConfiguration { // (수신 처리) 메시지 수신 - 저장 후 수신 메시지 처리 쓰레드 설정 @Bean(name = "dropBoxProcessorThreadPoolTaskExecutor") - public Executor dropBoxProcessorThreadPoolTaskExecutor() { + public ThreadPoolTaskExecutor dropBoxProcessorThreadPoolTaskExecutor() { ThreadPoolTaskExecutor dropBoxProcessorThreadPoolTaskExecutor = new ThreadPoolTaskExecutor(); dropBoxProcessorThreadPoolTaskExecutor.setCorePoolSize(30); // 최소 쓰레드 dropBoxProcessorThreadPoolTaskExecutor.setMaxPoolSize(300); // 최대 쓰레드 diff --git a/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxTaskExecutorService.java b/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxTaskExecutorService.java index bc96b67..fffc239 100644 --- a/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxTaskExecutorService.java +++ b/src/main/java/com/bsmlab/dfx/agent/task/dropbox/DropBoxTaskExecutorService.java @@ -15,6 +15,7 @@ import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestTemplate; @@ -30,6 +31,7 @@ import java.util.Map; @RequiredArgsConstructor @Slf4j public class DropBoxTaskExecutorService { + private final ThreadPoolTaskExecutor dropBoxProcessorThreadPoolTaskExecutor; private final AgentConfigReader agentConfigReader; private final SqlExecuteService sqlExecuteService; private final DropBoxService dropBoxService; @@ -40,7 +42,7 @@ public class DropBoxTaskExecutorService { * @param messageFilePath 메지시 파일 절대 경로 */ @SuppressWarnings("unchecked") - @Async("dropBoxProcessorThreadPoolTaskExecutor") +// @Async("dropBoxProcessorThreadPoolTaskExecutor") public void processDropBox(String messageFilePath) { ReceiveMessageDto receiveMessageDto = ReceiveMessageDto.builder().build(); ReceiveMessageDto.ProcessStatus processStatus; @@ -155,18 +157,22 @@ public class DropBoxTaskExecutorService { } public void launch() { // 실행확인됨 - log.debug("{} @PostConstruct Run", this.getClass().getName()); - while(true) { + log.debug("{} launch", this.getClass().getName()); + Runnable runnable = () -> { try { - Thread.sleep(10); + log.info("dropBoxProcessThread run {}", Thread.currentThread().getName()); String messageFilePath = dropBoxService.poll(); if(StringUtils.isNotBlank(messageFilePath)) { this.processDropBox(messageFilePath); } + Thread.sleep(10); } catch (InterruptedException e) { log.error("{}", e, e); Thread.currentThread().interrupt(); } + }; + for(int i = 0; i < this.dropBoxProcessorThreadPoolTaskExecutor.getCorePoolSize(); i++) { + this.dropBoxProcessorThreadPoolTaskExecutor.execute(runnable); } } diff --git a/src/main/java/com/bsmlab/dfx/agent/task/postman/PostmanSchedulerService.java b/src/main/java/com/bsmlab/dfx/agent/task/postman/PostmanSchedulerService.java index 0aeffcc..56e042f 100644 --- a/src/main/java/com/bsmlab/dfx/agent/task/postman/PostmanSchedulerService.java +++ b/src/main/java/com/bsmlab/dfx/agent/task/postman/PostmanSchedulerService.java @@ -58,7 +58,7 @@ public class PostmanSchedulerService { } public void launch() { // 실행확인됨 - log.debug("{} @PostConstruct Run", this.getClass().getName()); + log.info("{} launch", this.getClass().getName()); List postmanList = agentConfigReader.getScheduledTypePostmanList(); if(postmanList != null) { for(AgentConfigDto.Postman postman : postmanList) { diff --git a/src/main/java/com/bsmlab/dfx/agent/task/status/StatusCheckerSchedulerService.java b/src/main/java/com/bsmlab/dfx/agent/task/status/StatusCheckerSchedulerService.java index 86de1b8..6457f4a 100644 --- a/src/main/java/com/bsmlab/dfx/agent/task/status/StatusCheckerSchedulerService.java +++ b/src/main/java/com/bsmlab/dfx/agent/task/status/StatusCheckerSchedulerService.java @@ -4,8 +4,6 @@ import com.bsmlab.dfx.agent.config.AgentConfigDto; import com.bsmlab.dfx.agent.config.AgentConfigReader; import com.bsmlab.dfx.agent.listener.dto.AckDto; import com.bsmlab.dfx.agent.listener.dto.CommandDto; -import com.bsmlab.dfx.agent.listener.dto.ReceiveMessageDto; -import com.bsmlab.dfx.agent.support.exception.DfxException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -19,7 +17,6 @@ import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; -import java.util.HashMap; import java.util.List; import java.util.UUID; import java.util.concurrent.ScheduledFuture;