spring-定时任务

  • Post author:
  • Post category:其他


spring开启定时任务,需要注解EnableScheduling

在这里插入图片描述

Import注解中,有SchedulingConfiguration

在这里插入图片描述

这个SchedulingConfiguration,会创建beanPostProcessor–ScheduledAnnotationBeanPostProcessor

在这里插入图片描述

在bean创建过程中回调beanPostProcessor时,ScheduledAnnotationBeanPostProcessor会执行postProcessAfterInitialization方法,扫描每个bean中存在的方法

在这里插入图片描述

将任务根据cron、fixRate、fixDelay封装为对应的CronTask、FixedRateTask、FixedDelayTask,并注册到scheduledregistrar中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最后将任务存入到map中,key是bean,value是任务集合

在这里插入图片描述

实现了ApplicationListener接口,在监听器回调方法中,执行了finishRegistration方法,

此处扫描SchedulingConfigurer.class,执行configureTasks回调

在这里插入图片描述

此处扫描TaskScheduler.class,

在这里插入图片描述

没扫到TaskScheduler.class,后面会扫描ScheduledExecutorService.class

在这里插入图片描述

进行默认taskScheduler设置,

在这里插入图片描述

localExecutor持有线程池,core是1,max是2147483647

在这里插入图片描述

启动定时任务

在这里插入图片描述



版权声明:本文为baidu_39458769原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。