@Scheduled简介:
springboot中自带的@Scheduled注解,以将它看成一个轻量级的Quartz,默认情况下是单线程的。也就是无论同时有多少个任务需要执行,都需要排队等待某个任务完成之后才能继续下一个任务。
我们可以通过xml配置任务线程池,也可以通过继承SchedulingConfigurer类并重写方法,这里主要将继承方SchedulingConfigurer法;
继承SchedulingConfigurer类
@Configuration
@EnableScheduling
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskExecutor());
}
//spring容器关闭时,关掉定时任务
@Bean(destroyMethod="shutdown")
public Executor taskExecutor() {
//设置100个线程处理定时任务
return Executors.newScheduledThreadPool(100);
}
}