【SpringBoot 调度任务】

news/2024/12/19 8:27:48/

在 Spring Boot 中实现调度任务(Scheduled Tasks),通过使用 @EnableScheduling 和 @Scheduled 注解来完成。

  • 添加依赖
  • 启用调度任务支持
  • 创建调度任务
  • 运行应用程序

添加依赖

pom.xml 文件中有以下依赖项:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId>
</dependency>

Spring Boot Starter 已经包含了调度任务所需的所有依赖。

启用调度任务支持

需要在主应用程序类或配置类上添加 @EnableScheduling 注解以启用调度功能。

java">import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication
@EnableScheduling
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

创建调度任务

在你想要定义调度任务的组件类上使用 @Component 或其他合适的组件注解,并在方法上使用 @Scheduled 注解来指定任务执行的时间规则。

java">import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Component
public class MyScheduledTasks {// 每5秒执行一次任务@Scheduled(fixedRate = 5000)public void reportCurrentTime() {System.out.println("执行时间:" + System.currentTimeMillis() / 1000);}// 在每天凌晨1点执行任务@Scheduled(cron = "0 0 1 * * ?")public void executeDailyTask() {System.out.println("每日凌晨1点执行的任务");}
}

@Scheduled 注解可以接受几种不同的参数:

  • cron: 使用标准的 cron 表达式来定义复杂的调度模式。
  • fixedRate: 定义每次任务之间的固定延迟时间(以毫秒为单位)。它会在前一个任务完成后立即开始下一个任务,而不考虑任务本身的执行时间。
  • fixedDelay: 类似于 fixedRate,但它是在前一个任务完成后等待指定的时间才开始下一个任务。
  • initialDelay: 设置第一次调度之前的延迟时间。

运行应用程序

当启动应用程序时,Spring Boot 会自动检测到带有 @Scheduled 注解的方法,并按照定义的时间规则执行它们。


http://www.ppmy.cn/news/1556342.html

相关文章

sylar:日志管理

参照 log4j 先写一个日志系统 以下代码均在同一文件sylar/log.h 开头两行&#xff1a; #ifndef __SYLAR_LOG_H__ #define __SYLAR_LOG_H__#endif#ifndef 是 “if not defined” 的缩写&#xff0c;它是一个预处理指令&#xff0c;去检查在当前的编译阶段&#xff0c;SYLAR_L…

windows C#-扩展方式的常见使用模式

集合功能 过去&#xff0c;创建”集合类”通常是为了使给定类型实现 System.Collections.Generic.IEnumerable<T> 接口&#xff0c;并实现对该类型集合的功能。 创建这种类型的集合对象没有任何问题&#xff0c;但也可以通过对 System.Collections.Generic.IEnumerable&…

代码随想录训练营第二十二天| 77. 组合 216.组合总和III 17.电话号码的字母组合

77. 组合 题目链接/文章讲解&#xff1a; 代码随想录 视频讲解&#xff1a;带你学透回溯算法-组合问题&#xff08;对应力扣题目&#xff1a;77.组合&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 经典回溯 一点都看不懂 所以就看题解慢慢来吧 Java代码&#xff1a…

短剧系统开发教程概要

引言 随着移动互联网的快速发展&#xff0c;短剧内容因其简短、精炼、情节紧凑的特点&#xff0c;吸引了大量观众的喜爱。为了满足市场需求&#xff0c;开发一款功能完善、体验优良的短剧平台显得尤为重要。本文将详细介绍短剧源码的开发搭建过程&#xff0c;包括需求分析、技…

USB Type-C接口快充协议芯片的特点与发展趋势

随着智能手机、平板电脑、笔记本电脑及其他便携式设备的普及&#xff0c;USB Type-C接口已经成为主流的连接标准。在这个过程中&#xff0c;USB Type-C接口不仅在数据传输上表现出色&#xff0c;还因其支持高功率传输&#xff0c;成为现代设备快充的核心技术之一。为了满足用户…

网络攻与防

1、两个专网连接 &#xff08;1&#xff09;、两个网卡VMNET2/3---配置IP子网、仅主机模式--除去DHCP设置 路由和两台主机分别ping通 &#xff08;2&#xff09;、路由配置&#xff1a;两个专网之间连接--否拨号连接 两台主机可相互ping通---成功 如果ping不通&#xff0c;…

力扣-图论-12【算法学习day.62】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…

软件集成测试内容和作用简析

在现代软件开发过程中&#xff0c;软件集成测试作为关键的一环&#xff0c;日益受到重视。特别是随着信息技术的快速发展&#xff0c;各类软件系统日益庞大复杂&#xff0c;如何确保系统不同模块的顺畅合作&#xff0c;成为了每个项目成功的重要基础。集成测试是指在软件开发过…