package com.telpo.dipperposition.config; import lombok.Getter; import lombok.Setter; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.scheduling.config.ScheduledTaskRegistrar; /** * @program: DataPushServer * @description: 定时任务线程配置 * @author: linwl * @create: 2020-07-24 10:53 */ @Getter @Setter @Configuration public class SchedulingExecutorConfig implements SchedulingConfigurer { @Value("${scheduler.pool.size}") private int pollSize; @Value("${scheduler.pool.await-seconds}") private int awaitSeconds; @Value("${pos.ast.server}") private String astServer; @Value("${pos.ast.ephAstPort}") private int ephAstPort; @Value("${pos.ast.ephAstHexPort}") private int ephAstHexPort; @Value("${pos.ast.timeout}") private int astTimeout; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { ThreadPoolTaskScheduler taskScheduler = taskScheduler(); taskRegistrar.setTaskScheduler(taskScheduler); } @Bean(destroyMethod = "shutdown", name = "taskScheduler") public ThreadPoolTaskScheduler taskScheduler() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(pollSize); scheduler.setThreadNamePrefix("task-"); scheduler.setAwaitTerminationSeconds(awaitSeconds); scheduler.setWaitForTasksToCompleteOnShutdown(true); return scheduler; } }