@Scheduled 어노테이션을 사용하면 여러개의 스케쥴 작업이 스레드 여러개에서 도는것이 아니라 순서대로 진행한다.
스레드를 사용해서 여러개의 스케쥴러를 돌리고 싶다면 아래와 같이 @Configuration 해주면 된다.
@Configuration
public class SchedulerConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(5);
threadPoolTaskScheduler.setThreadGroupName("settlement-scheduler");
threadPoolTaskScheduler.setThreadNamePrefix("scheduler-thread-");
threadPoolTaskScheduler.initialize();
taskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
}
}