SchedulingConfigurer详解
时间: 2023-10-18 11:31:03 浏览: 108
PathPattern详解
SchedulingConfigurer是Spring框架中的一个接口,用于实现动态配置定时任务。与使用@Scheduled注解相比,SchedulingConfigurer有一些不同之处。@Scheduled注解的一个缺点是定时时间不能动态更改,而SchedulingConfigurer可以实现动态修改任务执行周期。通过实现SchedulingConfigurer接口,并在@Configuration类上添加@EnableScheduling注解的支持,可以实现动态配置定时任务。
SchedulingConfigurer接口中只有一个方法configureTasks(ScheduledTaskRegistrar taskRegistrar),在这个方法中,我们可以对任务调度进行配置。具体来说,在configureTasks方法中,我们可以通过taskRegistrar对象来初始化定时任务,添加任务调度信息,并将所有的任务信息存放在scheduledFutures集合中。任务调度信息可以通过Jdk的Executors.newSingleThreadScheduledExecutor()和配置的时间规则进行调度执行。
需要注意的是,使用SchedulingConfigurer接口需要自行编写代码来维护定时任务列表,并控制任务的增删,这样相比使用ScheduledTaskRegistrar.addTriggerTask方法来维护定时任务会更加繁琐。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [基于SchedulingConfigurer的任务调度](https://blog.csdn.net/G0_hw/article/details/94877687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [任务调度处理系列之 Spring源码分析-【SchedulingConfigurer实现原理】](https://blog.csdn.net/Coder_Boy_/article/details/110676333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文