EN
/news/show.aspx/video/34827646.html

SpringBoot日常生活:@Scheduled实现服务启动时执行一次

2025-06-24 07:19:56 来源: 新华社
字号:默认 超大 | 打印 |

文章目录。

    • 一、@详解Scheduled。
    • 二、逻辑实现。
      • 1、创建定时任务逻辑方法。
      • 2、新建启动执行类。
    • 三、测试结果。

说到定时任务󿀌我们应该想到@Scheduled,Quartz和XXL-JOB,但有些单一服务或小项目󿀌为方便快捷�可直接使用@实现Scheduled的异步任务。所以,从而延伸本文的主题需求。

项目中使用ʄScheduled,如何在项目启动时提前执行指定的异步任务?

一、@详解Scheduled。

@Scheduled注解支持多个参数,用于灵活控制任务执行时间。

  • cron:Cron表达式,能准确控制秒、分、小时、日、月、周等。
    在这里插入图片描述
  • zone:接收时区,例如,我们通常使用的时区Asia/Shanghai,我们通常会把这个字段留空。
  • fixedDelay:上一次执行完成时间点后需要多长时间?如@Scheduled(fixedDelay = 5000)。
  • fixedDelayString:与 fixedDelay 意思相同󿀌只使用字符串的形式。唯一的区别是支持占位符,如@Scheduled(fixedDelayString = “5000”)。
  • fixedRate:上次开始执行时间点后,需要多长时间?c;如@Scheduled(fixedRate = 5000)。
  • fixedRateString:与 fixedRate 意思相同󿀌只使用字符串的形式。唯一不同的是支持占位符。
  • initialDelay:第一次延迟多长时间后执行󿀌例如,在第一次延迟1秒后执行󿀌然后按照fixedrate的规则每5秒执行一次@Scheduled(initialDelay=1000, fixedRate=5000)。
  • initialDelayString:与 initialDelayString 意思相同󿀌只使用字符串的形式。唯一不同的是支持占位符。

二、逻辑实现。

1、创建定时任务逻辑方法。

/** * @Author 码至终章 * @Version 1.0 */。@Component。public。class。ScheduledTest。{ 。e。.。printStackTrace。(。)。;}。}。}。

注:记得自己加上启动类,ʄEnableScheduling,定时任务 实施󿀌当然,这并不影响本文的逻辑测试。

三、测试结果。

服务启动后,查看打印信息。
在这里插入图片描述

【我要纠错】责任编辑:新华社