package kr.co.vividnext.sodalive.configs import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Primary import org.springframework.scheduling.annotation.EnableScheduling import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler @Configuration @EnableScheduling class SchedulerConfig { @Primary @Bean(name = ["taskScheduler"]) fun taskScheduler(): ThreadPoolTaskScheduler { val scheduler = ThreadPoolTaskScheduler() scheduler.poolSize = 5 scheduler.setThreadNamePrefix("DefaultScheduler-") scheduler.setWaitForTasksToCompleteOnShutdown(true) // 종료 시 대기 설정 scheduler.setAwaitTerminationSeconds(10) // 최대 10초 대기 return scheduler } @Bean(name = ["audioContentReleaseScheduler"]) fun audioContentReleaseScheduler(): ThreadPoolTaskScheduler { val scheduler = ThreadPoolTaskScheduler() scheduler.poolSize = 2 scheduler.setThreadNamePrefix("AudioContentRelease-Scheduler-") scheduler.setWaitForTasksToCompleteOnShutdown(true) // 종료 시 대기 설정 scheduler.setAwaitTerminationSeconds(10) // 최대 10초 대기 return scheduler } }