Spring 定时任务框架详解(2)——核心类介绍
本篇主要介绍Spring定时任务框架涉及到的核心类及其功能
- TaskScheduler:Spring任务调度器的核心接口,定义了执行定时任务的主要方法,主要根据任务的不同触发方式调用不同的执行逻辑,其实现类都是对JDK原生的定时器或线程池组件进行包装,并扩展额外的功能。主要实现类如下:
- TimerManagerTaskScheduler:基于Timer定时器组件的实现;
- ThreadPoolTaskScheduler:基于JDK原生的线程池,包装了ScheduledExecutorService实例,并扩展了一些额外的触发能力;
- ThreadPoolTaskScheduler:TaskScheduler接口的默认实现类,以多线程方式执行定时任务。可以设置执行线程池数(默认一个线程);
- ConcurrentTaskScheduler:以单个线程方式执行定时任务,适用于简单场景;
- DefaultManagedTaskScheduler:在ConcurrentTaskScheduler基础上增加了JNDI的支持。
ScheduledTask:定时任务类,内部包装了一个Runnable
ScheduledTaskHolder:维护本地的ScheduledTask实例
- ScheduledTaskRegistrar:ScheduledTask注册中心,ScheduledTaskHolder接口的一个重要的实现类,维护了程序中所有配置的ScheduledTask
- ScheduledAnnotationBeanPostProcessor:Scheduled注解后处理器,项目启动时会扫描所有标记了@Scheduled注解的方法,封装成ScheduledTask注册起来