问题:使用多个@Scheduled进行开始定时任务可能会存在某个或某几个任务不执行,那是因为@Scheduled默认是单线程的,当其中一个任务执行时间比较久时,该任务将会占用线程资源,故使其他定时任务无法执行。
解决:添加配置类,定义Scheduled线程池
@Configuration
public class ScheduledConfig {@Beanpublic ThreadPoolTaskScheduler taskScheduler() {ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();scheduler.setPoolSize(10); // 配置线程池数量为10return scheduler;}
}