1、定时任务类加上如下注解
@EnableScheduling
@Configuration
2、定时任务类内方法加下如下注解
@Scheduled(cron = "0 */5 * * * ?")
3、按上面配置后,定时任务执行会按照默认线程执行
4、如果想多线程执行需要添加如下配置
@Async("xxxxTaskExecutor")-指明线程池
@Scheduled(cron = "0 */5 * * * ?")
5、添加如下配置
@Configuration
//用线程池给不同定时任务分配不同的线程
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(xxxxTaskExecutor());
}
@Bean
public Executor xxxxTaskExecutor() {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(30);
taskScheduler.initialize();
taskScheduler.setThreadNamePrefix("Thread-Scheduler-");
return taskScheduler;
}
}