应用场景
项目中使用定时任务批量上传数据,需要同时跑好几个定时任务。
遇到问题
后来由于出现bug发现,Scheduled的定时任务,在同时执行多个的时候,默认是单线程执行的。
也就是说,当某一个任务执行时间过慢时,后续的任务都不是我想要让它执行的时间执行的。
解决办法
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(50);
return taskScheduler;
}
只需要加上面的代码,就可以改成多线程执行了。