关于统一时刻执行两个定时任务(解决方案在最下面)
每十秒执行一次定时任务。
在运行的过程中我们在ScheduledTaskRegistrar这个类可以看到scheduleTasks() 这个方法,在执行过程中发现cronTasks为4 ,因为我的定时任务,一共写了4个;taskScheduler不为null,但是点开发现他的线程池大小只有1,所以说在执行循环的时候,他虽然放到了线程池中,但是线程池中只有一个,所以他还是相当于单线程。
之后我就寻找为什么线程池任务调度类的线程池数量为1,经过寻找,他是在项目启动的时候就注入到Spring里面了,通过getBean方法来获取的,所以我们找到这个类,他的默认poolSize就是1 。
解决方案
生成一个这个类