dropBoxProcessorThreadPoolTaskExecutor를 10ms 단위의 Scheduler로 변경완료 (ThreadPoolTaskScheduler.scheduleWithFixedDelay)

- 사용되지 않는 소스 정리하여야 함

alive 메시지 로직 확인하여야 함
main
semin.baek 8 months ago
parent b28274da17
commit 57a45a0496

@ -11,7 +11,7 @@
}
],
"statusChecker": {
"cron": "0 0/10 * * * *"
"cron": "2 0/1 * * * *"
},
"dataSourceConfig": [
{

@ -192,7 +192,18 @@ public class DfxAgentConfiguration {
return dropBoxProcessorThreadPoolTaskExecutor;
}
// (송신 처리) 메시지 송신 쓰레드 설정
// (수신 처리) 메시지 수신 - 저장 후 수신 메시지 처리 쓰레드 설정
@Bean(name = "dropBoxProcessorThreadPoolTaskScheduler")
public ThreadPoolTaskScheduler dropBoxProcessorThreadPoolTaskScheduler() {
ThreadPoolTaskScheduler dropBoxProcessorThreadPoolTaskScheduler = new ThreadPoolTaskScheduler();
dropBoxProcessorThreadPoolTaskScheduler.setPoolSize(300);
dropBoxProcessorThreadPoolTaskScheduler.setThreadNamePrefix("dropBoxProcessor-");
dropBoxProcessorThreadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true); // 종료 시 대기 여부
dropBoxProcessorThreadPoolTaskScheduler.initialize();
return dropBoxProcessorThreadPoolTaskScheduler;
}
// (송신 처리) 메시지 송신 쓰레드 설정(삭제 예정)
@Bean(name = "scheduledPostmanThreadPoolTaskScheduler")
public ThreadPoolTaskScheduler scheduledPostmanThreadPoolTaskScheduler() { // 실행확인됨
ThreadPoolTaskScheduler scheduledPostmanThreadPoolTaskScheduler = new ThreadPoolTaskScheduler();

@ -16,6 +16,8 @@ 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.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Service;
import org.springframework.web.client.ResourceAccessException;
import org.springframework.web.client.RestTemplate;
@ -24,14 +26,18 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.time.Duration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ScheduledFuture;
@Service
@RequiredArgsConstructor
@Slf4j
public class DropBoxTaskExecutorService {
private final ThreadPoolTaskExecutor dropBoxProcessorThreadPoolTaskExecutor;
private final ThreadPoolTaskScheduler dropBoxProcessorThreadPoolTaskScheduler;
private final AgentConfigReader agentConfigReader;
private final SqlExecuteService sqlExecuteService;
private final DropBoxService dropBoxService;
@ -156,8 +162,25 @@ public class DropBoxTaskExecutorService {
}
}
private void run() {
try {
String messageFilePath = dropBoxService.poll();
if(StringUtils.isNotBlank(messageFilePath)) {
log.info("dropBoxProcessThread {} process a message {}", Thread.currentThread().getName(), messageFilePath);
this.processDropBox(messageFilePath);
}
Thread.sleep(10);
} catch (InterruptedException e) {
log.error("{}", e, e);
Thread.currentThread().interrupt();
}
}
public void launch() { // 실행확인됨
log.debug("{} launch", this.getClass().getName());
ScheduledFuture<?> scheduledFuture = dropBoxProcessorThreadPoolTaskScheduler.scheduleWithFixedDelay(this::run, Duration.ofMillis(10));
/*
Runnable runnable = () -> {
try {
log.info("dropBoxProcessThread run {}", Thread.currentThread().getName());
@ -174,6 +197,7 @@ public class DropBoxTaskExecutorService {
for(int i = 0; i < this.dropBoxProcessorThreadPoolTaskExecutor.getCorePoolSize(); i++) {
this.dropBoxProcessorThreadPoolTaskExecutor.execute(runnable);
}
*/
}
}

Loading…
Cancel
Save