Spring Schedule 是指Spring框架提供的定时任务调度功能。Spring Schedule允许开发者在应用程序中便捷地创建和管理定时任务,比如按固定频率执行某些操作,或者按照cron表达式设定复杂的调度规则。
Spring Schedule 功能的依赖直接或间接地包含在 spring-boot-starter
家族中的相关起步依赖模块中,特别是对于定时任务的支持,Spring Boot 默认并未在基础的 spring-boot-starter
中直接提供,而是包含在 spring-boot-starter-web
或者 spring-boot-starter-data-jpa
等起步依赖中并不是必需的。然而,为了支持定时任务,你需要引入 spring-boot-starter-quartz
(如果打算使用Quartz作为定时任务调度器)或者只需要 spring-boot-starter
和 spring-boot-starter-data-solr
(内含对Scheduled任务的支持)。
SpringBoot使用Spring Schedule不用额外的引入其他依赖只要有依赖就可以了
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
Spring Schedule核心概念与使用
1. Cron表达式
Cron表达式是用于配置定时任务执行时间的一种格式,它通常包含以下七个字段(部分字段非必填): 秒(Seconds) 分钟(Minutes) 小时(Hours) 月份中的日期(Day-of-Month) 月份(Month) 星期中的哪一天(Day-of-Week) 年份(Year)(这个字段在大部分场景下是可选的,Spring Schedule默认不使用) 示例:0 0 0 * * MON-FRI 表示每周一到周五的每天凌晨0点执行。
Cron表达式在线工具:https://www.pppet.net/
2. 使用@EnableScheduling
要在Spring Boot应用中启用定时任务调度功能,需要在某个配置类或@SpringBootApplication标记的启动类上添加@EnableScheduling
注解,这样Spring容器就会启动一个后台调度器来检测并执行带有@Scheduled
注解的方法。
@SpringBootApplication @EnableScheduling public class Application { public static void main(String[] args){ SpringApplication.run(Application.class,args); } }
3. @Scheduled注解
@Scheduled
注解用于标记需要被调度执行的方法,它可以有多个属性来指定调度策略,如cron表达式、fixedDelay(两次执行之间的间隔时间)或fixedRate(两次执行开始之间的间隔时间)等。
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class MyTask { @Scheduled(cron = "0 0/15 * * * ?") public void executeEveryQuarterHour() { // 每15分钟执行一次的方法体 } }
4. 调度器实现
Spring Schedule背后支持多种任务调度方案,如JDK Timer、concurrent包下的ScheduledExecutorService以及Quartz等。Spring通过封装这些底层实现,为开发者提供了统一的接口和配置方式来处理定时任务。
标签:Schedule,spring,boot,就够,Spring,定时,starter From: https://www.cnblogs.com/HQ0422/p/18074419