定时器@Scheduled使用

2024-01-07 21:48:28

四种调度方法

@Scheduled 是 Spring Boot 中用于创建定时任务的注解。使用此注解可以很方便地实现定时任务的自动调度。以下是常见四种参数的作用:

  1. 固定延迟(Fixed Delay):

    • @Scheduled(fixedDelay = 1000):在上一个任务完成后,等待1000毫秒(1秒)开始下一个任务。
  2. 固定速率(Fixed Rate):

    • @Scheduled(fixedRate = 1000):每1000毫秒(1秒)执行一次任务,不考虑上一个任务的执行时间。
  3. 初始延迟(Initial Delay):

    • @Scheduled(initialDelay = 1000, fixedRate = 5000):应用启动后等待1000毫秒(1秒)开始执行第一个任务,之后每5000毫秒(5秒)执行一次。
  4. 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 表达式通常由六或七个部分组成,每个部分用空格分隔。这些部分表示不同的时间单位,如下所示:

  1. (0-59)
  2. 分钟 (0-59)
  3. 小时 (0-23)
  4. 日期 (1-31)
  5. 月份 (1-12 或 JAN-DEC)
  6. 星期 (0-7,其中 0 和 7 都代表星期日,或者用 SUN-SAT)
  7. 年份 (可选字段,通常留空)

每个部分可以包含一个数值、一个范围、一个列表或一个特殊字符。以下是一些特殊字符及其含义:

  • *:任意值,用于表示该字段的每个可能的值。
  • -:表示一个范围,例如 10-12 在小时字段中代表10点到12点。
  • ,:用于列举多个值,例如 MON,WED,FRI 在星期字段中代表星期一、星期三和星期五。
  • /:用于指定增量,例如 0/15 在分钟字段中代表每小时的0分、15分、30分和45分。
  • ?:用在日期和星期字段中,表示“没有特定的值”,通常用于其中一个字段为具体值时,另一个字段设为 ?

------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!小弟在这拜谢了!
如果您觉得我的文章在某些地方写的不尽人意或者写的不对,从而让你对你人生观产生颠覆(概不负责),需要斧正,麻烦在评论区不吝赐教,作者看到后会根据您的提示查阅文章进行修改,还这世间一个公理一片蓝天

文章来源:https://blog.csdn.net/weixin_43895362/article/details/135444397
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。