스프링 부트의 @Scheduled 사용할 때 중복되는 스케쥴이 동시 실행이 안된다
문제점
스프링 배치의 잡을 실행할 떄, 스프링 부트의 @Scheduled 를 이용해서 주기적으로 배치잡을 실행한다. 그런데 수행시간이 긴 잡을 실행할 때, 동시에 실행되어야 하는 잡이 실행이 되지 않았다.
해결방법
아래와 같이 쓰레드풀의 사이즈를 증가시켜 준다. 귀찮아서 찾아보지는 않았지만 쓰레드풀 기본 사이즈가 1로 설정되어있는게 아닐까?
@Configuration
public class SchedulingConfigurerConfiguration implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(쓰레드풀사이즈1이상으로정의);
taskScheduler.initialize();
taskRegistrar.setTaskScheduler(taskScheduler);
}
}
원인
궁금해서 찾아봐야겠다.
끗.