@Configuration @EnableScheduling public class ScheduleConfig implements SchedulingConfigurer, AsyncConfigurer{ /** 異步處理 */ public void configureTasks(ScheduledTaskRegistrar taskRegistrar){ TaskScheduler taskScheduler = taskScheduler(); taskRegistrar.setTaskScheduler(taskScheduler); } /** 定時任務多線程處理 */ @Bean(destroyMethod = "shutdown") public ThreadPoolTaskScheduler taskScheduler(){ ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(20); scheduler.setThreadNamePrefix("task-"); scheduler.setAwaitTerminationSeconds(60); scheduler.setWaitForTasksToCompleteOnShutdown(true); return scheduler; } /** 異步處理 */ public Executor getAsyncExecutor(){ Executor executor = taskScheduler(); return executor; } /** 異步處理 異常 */ public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler(){ return new SimpleAsyncUncaughtExceptionHandler(); } }
