실행 오류 수정

main
semin.baek 10 months ago
parent a6f29ecffd
commit 499c64892b

@ -45,7 +45,7 @@ public class DfxAgentConfiguration {
// agent 설정 관리자. 대부분의 기능에 필요함 // agent 설정 관리자. 대부분의 기능에 필요함
@Bean(name = "agentConfigReader") @Bean(name = "agentConfigReader")
public AgentConfigReader agentConfigReader() { public AgentConfigReader agentConfigReader() { // 실행확인됨
if(StringUtils.isBlank(this.settingFile)) { if(StringUtils.isBlank(this.settingFile)) {
log.error("cannot found a setting file. {}", this.settingFile); log.error("cannot found a setting file. {}", this.settingFile);
log.error("exit application"); log.error("exit application");
@ -58,7 +58,7 @@ public class DfxAgentConfiguration {
// 다중 데이터 소스 생성 // 다중 데이터 소스 생성
@Bean(name = "dynamicRoutingDataSource") @Bean(name = "dynamicRoutingDataSource")
public DynamicRoutingDataSource dynamicRoutingDataSource(AgentConfigReader agentConfigReader) { public DynamicRoutingDataSource dynamicRoutingDataSource(AgentConfigReader agentConfigReader) { // 실행확인됨
DynamicRoutingDataSource dynamicRoutingDataSource = new DynamicRoutingDataSource(); DynamicRoutingDataSource dynamicRoutingDataSource = new DynamicRoutingDataSource();
Map<String, SqlSessionFactory> sqlSessionFactoryMap = new HashMap<>(); Map<String, SqlSessionFactory> sqlSessionFactoryMap = new HashMap<>();
Map<String, DataSourceTransactionManager> transactionManagerMap = new HashMap<>(); Map<String, DataSourceTransactionManager> transactionManagerMap = new HashMap<>();
@ -118,7 +118,7 @@ public class DfxAgentConfiguration {
// 다중 데이터 소스와 그에 해당하는 sqlSession, transactionManager 설정 // 다중 데이터 소스와 그에 해당하는 sqlSession, transactionManager 설정
@Bean(name = "dynamicDataSourceService") @Bean(name = "dynamicDataSourceService")
public DynamicDataSourceService dynamicDataSourceService() { public DynamicDataSourceService dynamicDataSourceService() { // 실행확인됨
DynamicDataSourceService dynamicDataSourceService = new DynamicDataSourceService(); DynamicDataSourceService dynamicDataSourceService = new DynamicDataSourceService();
dynamicDataSourceService.setSqlSessionFactoryMap(this.temporarySqlSessionFactoryMap); dynamicDataSourceService.setSqlSessionFactoryMap(this.temporarySqlSessionFactoryMap);
dynamicDataSourceService.setTransactionManagerMap(this.temporaryTransactionManagerMap); dynamicDataSourceService.setTransactionManagerMap(this.temporaryTransactionManagerMap);
@ -140,7 +140,7 @@ public class DfxAgentConfiguration {
// (송신 처리) 메시지 송신 쓰레드 설정 // (송신 처리) 메시지 송신 쓰레드 설정
@Bean(name = "scheduledPostmanThreadPoolTaskScheduler") @Bean(name = "scheduledPostmanThreadPoolTaskScheduler")
public ThreadPoolTaskScheduler scheduledPostmanThreadPoolTaskScheduler() { public ThreadPoolTaskScheduler scheduledPostmanThreadPoolTaskScheduler() { // 실행확인됨
ThreadPoolTaskScheduler scheduledPostmanThreadPoolTaskScheduler = new ThreadPoolTaskScheduler(); ThreadPoolTaskScheduler scheduledPostmanThreadPoolTaskScheduler = new ThreadPoolTaskScheduler();
scheduledPostmanThreadPoolTaskScheduler.setPoolSize(10); scheduledPostmanThreadPoolTaskScheduler.setPoolSize(10);
scheduledPostmanThreadPoolTaskScheduler.setThreadNamePrefix("postman-scheduler-"); scheduledPostmanThreadPoolTaskScheduler.setThreadNamePrefix("postman-scheduler-");

@ -1,5 +1,7 @@
package com.bsmlab.dfx.agent.config; package com.bsmlab.dfx.agent.config;
import com.bsmlab.dfx.agent.task.dropbox.DropBoxTaskExecutorService;
import com.bsmlab.dfx.agent.task.postman.PostmanSchedulerService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
@ -10,10 +12,16 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor @RequiredArgsConstructor
@Component @Component
public class StartupRunner implements ApplicationRunner { public class StartupRunner implements ApplicationRunner {
private final PostmanSchedulerService postmanSchedulerService;
private final DropBoxTaskExecutorService dropBoxTaskExecutorService;
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
log.debug("run"); // PostmanSchedulerService, DropBoxTaskExecutorService 는 @RequiredArgsConstructor 이기 때문에 자동으로 injection 된다
// 그 후 @PostConstruct 로직이 실행될 것이다.
log.debug("StartupRunner start [run]");
log.debug("{} ready", postmanSchedulerService.getClass().getName());
log.debug("{} ready", dropBoxTaskExecutorService.getClass().getName());
//TODO 4. Worker 쓰레드 생성 //TODO 4. Worker 쓰레드 생성
} }
} }

@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
public class WebServerCustomizer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> { public class WebServerCustomizer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
private final AgentConfigReader agentConfigReader; private final AgentConfigReader agentConfigReader;
@Override @Override
public void customize(ConfigurableServletWebServerFactory factory) { public void customize(ConfigurableServletWebServerFactory factory) { // 실행확인됨
int port = agentConfigReader.getAgentConfigDto().getMyListenPort(); int port = agentConfigReader.getAgentConfigDto().getMyListenPort();
factory.setPort(port); factory.setPort(port);
factory.setContextPath(""); // context-path 가 "/" root일 때 ""로 입력하여야 함 factory.setContextPath(""); // context-path 가 "/" root일 때 ""로 입력하여야 함

@ -152,7 +152,8 @@ public class DropBoxTaskExecutorService {
} }
@PostConstruct @PostConstruct
public void run() { public void run() { // 실행확인됨
log.debug("{} @PostConstruct Run", this.getClass().getName());
while(true) { while(true) {
try { try {
Thread.sleep(10); Thread.sleep(10);

@ -59,9 +59,11 @@ public class PostmanSchedulerService {
} }
@PostConstruct @PostConstruct
public void launch() { public void launch() { // 실행확인됨
log.debug("{} @PostConstruct Run", this.getClass().getName());
List<AgentConfigDto.Postman> postmanList = agentConfigReader.getScheduledTypePostmanList(); List<AgentConfigDto.Postman> postmanList = agentConfigReader.getScheduledTypePostmanList();
for(AgentConfigDto.Postman postman : postmanList) { for(AgentConfigDto.Postman postman : postmanList) {
this.postmanMap.put(postman.getPostmanId(), postman);
this.startPostman(postman.getPostmanId()); this.startPostman(postman.getPostmanId());
} }
} }

@ -1 +0,0 @@
spring.application.name=DFX Agent

@ -1,10 +1,9 @@
_______ __________ ___ ___ _______ _______ .__ __. .___________.
| \ | ____\ \ / / / \ / _____|| ____|| \ | | | |
| .--. || |__ \ V / / ^ \ | | __ | |__ | \| | `---| |----`
| | | || __| > < / /_\ \ | | |_ | | __| | . ` | | |
| '--' || | / . \ / _____ \ | |__| | | |____ | |\ | | |
|_______/ |__| /__/ \__\ /__/ \__\ \______| |_______||__| \__| |__|
ooo. ooooo o o .oo o ${application.title} ${application.version}
8 `8. 8 `b d' .P 8 8 Powered by Spring Boot ${spring-boot.version}
8 `8 o8oo `bd' .P 8 .oPYo. .oPYo. odYo. o8P
8 8 8 .PY. oPooo8 8 8 8oooo8 8' `8 8
8 .P 8 .P Y. .P 8 8 8 8. 8 8 8
8ooo' 8 .P Y. .P 8 `YooP8 `Yooo' 8 8 8
.....:::..::::..::::..:::..:::::..:....8 :.....:..::..::..:
::::::::::::::::::::::::::::::::::::ooP'.::::::::::::::::::
::::::::::::::::::::::::::::::::::::...::::::::::::::::::::
Loading…
Cancel
Save