SpringBoot实现定时任务-@Scheduled
创始人
2024-11-27 03:33:25

在Java编程中,@Scheduled 注解是 Spring Framework 提供的一个用于定时任务的注解

@Scheduled可以将一个方法配置为定时执行的任务

以下是一些基本用法:

1.固定速度

  • fixedRate指两次任务的开始时间间隔。
  • 所以存在第二次任务开始时,第一次任务可能还没结束。
// 每5秒执行一次任务 @Scheduled(fixedRate = 5000) public void fixedRateTask() {     System.out.println("fixedRateTask: The time is now " + new Date()); } 

2.固定延迟

  • fixedDelay指本次任务结束到下次任务开始之间的时间间隔。
// 在上一次任务执行完成后,延迟5秒执行下一次任务。 @Scheduled(fixedDelay = 5000) public void fixedDelayTask() {     System.out.println("fixedDelayTask: The time is now " + new Date()); } 

3.初始延迟

  • initialDelay指首次任务启动的延迟时间。
// 应用启动后延迟1秒开始执行任务,之后每5秒执行一次。 @Scheduled(initialDelay = 1000, fixedRate = 5000) public void initialDelayTask() {     System.out.println("initialDelayTask: The time is now " + new Date()); } 

4.cron 表达式

使用 cron表达式来定义任务的执行时间。

// 每分钟执行一次。 @Scheduled(cron = "0 * * * * ?") public void cronTask() {     System.out.println("cronTask: The time is now " + new Date()); } 

@EnableScheduling

使用 @Scheduled 注解时,需要配置@EnableScheduling 注解,配置后Spring 的调度器会检测并自动管理定时任务的执行。

注意:时间单位是毫秒

@EnableScheduling @Configuration public class ScheduledConfig { }  Component public class ScheduledTasksTest {     // 每5秒执行一次任务     @Scheduled(fixedRate = 5000)     public void fixedRateTask() {         System.out.println("fixedRateTask: The time is now " + new Date());     }      // 在上一次任务执行完成后,延迟5秒执行下一次任务。     @Scheduled(fixedDelay = 5000)     public void fixedDelayTask() {         System.out.println("fixedDelayTask: The time is now " + new Date());     }      // 应用启动后延迟1秒开始执行任务,之后每5秒执行一次。     @Scheduled(initialDelay = 1000, fixedRate = 5000)     public void initialDelayTask() {         System.out.println("initialDelayTask: The time is now " + new Date());     }      // 每分钟执行一次。     @Scheduled(cron = "0 * * * * ?")     public void cronTask() {         System.out.println("cronTask: The time is now " + new Date());     } } 

相关内容

热门资讯

科技助力唱“主角” 数字“新农... 科技助力唱“主角” 数字“新农具”耕出“智慧”丰收田 央视网消息:在湖北黄冈市,依托当地政府打造的...
数字技术赋能乡村振兴——以福建... 胡冰川 当下,数字技术正成为驱动农业农村高质量发展的新质生产力。数字农业以物联网、大数据、人工智能、...
构建智能体EDA方法论:挑战与... 工具与方法论之间的关系是双向的。工具赋能方法论,方法论依赖工具的功能特性及其所提供的数据。然而,当前...
琴海乐器取得带托架稳固的小提琴... 国家知识产权局信息显示,泰兴市琴海乐器有限公司取得一项名为“一种带托架稳固的小提琴”的专利,授权公告...
太仓陶氏电气取得翅板式散热器专... 国家知识产权局信息显示,太仓陶氏电气有限公司取得一项名为“一种翅板式散热器”的专利,授权公告号CN2...