spring定时任务默认是同步运行的。
当有多个@Scheduled任务时,多个任务会排队执行。(TaskScheduler接口的默认实现类,多线程定时任务执行。可以设置执行线程池数(默认一个线程))
要实现多个@Scheduled任务各自运行,需要注入定时任务线程池:
//创建定时任务线程池
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(64);
return taskScheduler;
}