四种调度方法
@Scheduled
是 Spring Boot 中用于创建定时任务的注解。使用此注解可以很方便地实现定时任务的自动调度。以下是常见四种参数的作用:
-
固定延迟(Fixed Delay):
@Scheduled(fixedDelay = 1000)
:在上一个任务完成后,等待1000毫秒(1秒)开始下一个任务。
-
固定速率(Fixed Rate):
@Scheduled(fixedRate = 1000)
:每1000毫秒(1秒)执行一次任务,不考虑上一个任务的执行时间。
-
初始延迟(Initial Delay):
@Scheduled(initialDelay = 1000, fixedRate = 5000)
:应用启动后等待1000毫秒(1秒)开始执行第一个任务,之后每5000毫秒(5秒)执行一次。
-
Cron 表达式:
@Scheduled(cron = "0 * * * * ?")
:使用Cron表达式来定义任务的执行时间。这个例子中,任务将在每分钟的开始时刻执行。
定时器使用
为了使用 @Scheduled
,需要在 Spring Boot 应用的主类或配置类上添加 @EnableScheduling
注解,以启用定时任务的调度功能。例如:
@SpringBootApplication
@EnableScheduling
public class MyApplication {
// 启动类代码
}
在Spring Boot应用中,只需要在一个地方添加@EnableScheduling
注解,通常是在主启动类(即包含@SpringBootApplication
注解的类)上添加。这样做会在整个Spring应用上下文中启用定时任务的调度。
然后,你可以在任何Spring管理的Bean中使用 @Scheduled
注解来定义一个定时任务。例如:
@Component
public class ScheduledTasks {
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("当前时间:" + LocalDateTime.now());
}
}
Cron详解
Cron 表达式是一种用于配置定时任务的字符串,它定义了任务应该在何时运行。Cron 表达式通常由六或七个部分组成,每个部分用空格分隔。这些部分表示不同的时间单位,如下所示:
- 秒 (0-59)
- 分钟 (0-59)
- 小时 (0-23)
- 日期 (1-31)
- 月份 (1-12 或 JAN-DEC)
- 星期 (0-7,其中 0 和 7 都代表星期日,或者用 SUN-SAT)
- 年份 (可选字段,通常留空)
每个部分可以包含一个数值、一个范围、一个列表或一个特殊字符。以下是一些特殊字符及其含义:
*
:任意值,用于表示该字段的每个可能的值。-
:表示一个范围,例如10-12
在小时字段中代表10点到12点。,
:用于列举多个值,例如MON,WED,FRI
在星期字段中代表星期一、星期三和星期五。/
:用于指定增量,例如0/15
在分钟字段中代表每小时的0分、15分、30分和45分。?
:用在日期和星期字段中,表示“没有特定的值”,通常用于其中一个字段为具体值时,另一个字段设为?
。
------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!小弟在这拜谢了!
如果您觉得我的文章在某些地方写的不尽人意或者写的不对,从而让你对你人生观产生颠覆(概不负责),需要斧正,麻烦在评论区不吝赐教,作者看到后会根据您的提示查阅文章进行修改,还这世间一个公理一片蓝天