You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.6 KiB
52 lines
2.6 KiB
package com.bsmlab.dfx.agent.config;
|
|
|
|
import com.bsmlab.dfx.agent.config.datasource.DynamicDataSourceService;
|
|
import com.bsmlab.dfx.agent.task.dropbox.DropBoxService;
|
|
import com.bsmlab.dfx.agent.task.dropbox.DropBoxSchedulerService;
|
|
import com.bsmlab.dfx.agent.task.postman.PostmanSchedulerService;
|
|
import com.bsmlab.dfx.agent.task.status.FileCleanerSchedulerService;
|
|
import com.bsmlab.dfx.agent.task.status.StatusCheckerSchedulerService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.boot.ApplicationArguments;
|
|
import org.springframework.boot.ApplicationRunner;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
@Slf4j
|
|
@RequiredArgsConstructor
|
|
@Component
|
|
public class StartupRunner implements ApplicationRunner {
|
|
private final DfxAgentConfiguration dfxAgentConfiguration;
|
|
private final DynamicDataSourceService dynamicDataSourceService;
|
|
private final PostmanSchedulerService postmanSchedulerService;
|
|
private final DropBoxSchedulerService dropBoxSchedulerService;
|
|
private final StatusCheckerSchedulerService statusCheckerSchedulerService;
|
|
private final FileCleanerSchedulerService fileCleanerSchedulerService;
|
|
private final DropBoxService dropBoxService;
|
|
|
|
@Override
|
|
public void run(ApplicationArguments args) throws Exception {
|
|
log.info("✅ StartupRunner 기동");
|
|
// DfxAgentConfiguration 에서 생성한 빈 중 DataSource 관련 설정을 마무리한다.
|
|
dynamicDataSourceService.setSqlSessionFactoryMap(dfxAgentConfiguration.getTemporarySqlSessionFactoryMap());
|
|
dynamicDataSourceService.setTransactionManagerMap(dfxAgentConfiguration.getTemporaryTransactionManagerMap());
|
|
//4. Worker 쓰레드 생성
|
|
// 송신 메시지 전송 서비스
|
|
log.info("✅ PostmanSchedulerService 기동");
|
|
postmanSchedulerService.launch();
|
|
// 수신한 메시지 처리 서비스
|
|
log.info("✅ DropBoxTaskExecutorService 기동");
|
|
dropBoxSchedulerService.launch();
|
|
// 다른 agent 상태 확인 서비스
|
|
log.info("✅ StatusCheckerSchedulerService 기동");
|
|
statusCheckerSchedulerService.launch();
|
|
// 처리 완료 파일 정리 서비스
|
|
fileCleanerSchedulerService.launch();
|
|
log.info("✅ FileCleanerSchedulerService 기동");
|
|
// receivedMessageStorageRoot 하위에 처리되지 않은 메시지를 처리 queue에 넣는다.
|
|
int messageCount = dropBoxService.addNotProcessedMessageFile();
|
|
log.info("✅ 미처리 메시지 체크 - {} 건 처리 등록", messageCount);
|
|
log.debug("✅ StartupRunner end");
|
|
}
|
|
}
|