@Scheduled 定时任务自定义
简介
@Scheduled
定时任务自定义可以通过SchedulingConfigurer
实现。
SchedulingConfigurer
是 Spring Framework
中的一个接口,用于配置定时任务。当你需要对定时任务进行更高级别的定制时,这个接口就显得非常有用。
- 可以通过
SchedulingConfigurer
接口来自定义一些高级配置 - 可以通过
SchedulingConfigurer
自定义执行定时任务的线程池。 - 可以通过
SchedulingConfigurer
自定义任务调度器,比如使用 Quartz 或其他调度框架。
实现
创建一个类实现SchedulingConfigurer
@Configuration public class ScheduleConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(10); scheduler.setThreadNamePrefix("schedule-executor-"); scheduler.initialize(); taskRegistrar.setScheduler(scheduler); } }
可以通过 ThreadPoolTaskScheduler 或者 ScheduledExecutorService 来配置线程池
使用
- 1.启动类添加
@EnableScheduling
注解 - 2.使用
@Scheduled
注解
@Scheduled(cron = "0/30 * * * * ?") public void test(){ log.info("Scheduled Test -- The time is now " + LocalDateTime.now()); }
效果
2024-08-15 20:07:00,014 INFO [schedule-executor-2] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:07:00.014 2024-08-15 20:07:30,004 INFO [schedule-executor-3] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:07:30.004 2024-08-15 20:08:00,010 INFO [schedule-executor-2] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:08:00.010 2024-08-15 20:08:30,014 INFO [schedule-executor-1] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:08:30.013 2024-08-15 20:09:00,016 INFO [schedule-executor-5] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:09:00.016
总结
SchedulingConfigurer
提供了一个灵活的方式来定制定时任务的执行方式。- 可以配置线程池的大小、执行策略等。
- 通过实现该接口并提供给 Spring,你可以完全控制定时任务的执行环境。
- 能够根据自己的需求来配置定时任务,确保它们按照预期的方式运行。
结束
本文作者:丿似锦
本文链接:https://www.cnblogs.com/zktww/p/18361752
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步