定时器@Scheduled使用

news2024/9/24 1:26: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分。
  • ?:用在日期和星期字段中,表示“没有特定的值”,通常用于其中一个字段为具体值时,另一个字段设为 ?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1365089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32---中断

中断框图 一.中断 中断:当有中断请求时,CPU会停止处理当前的任务,转而去处理中断任务。 中断输入线有19/20根(互联型号20根)。 分类:系统异常(10个)和外部中断(60个&…

thinkphp6入门(15)-- 模型动态构建查询条件

背景 我使用thinkphp6的模型写数据库查询,有多个where条件,但是不确定是否需要添加某个where条件,怎么才能动态得生成查询 链式查询 在ThinkPHP 6中,可以使用链式查询方法来动态地构建查询条件。可以根据参数的值来决定是否添加…

编译ZLMediaKit(win10+msvc2019_x64)

前言 因工作需要,需要ZLMediaKit,为方便抓包分析,最好在windows系统上测试,但使用自己编译的第三方库一直出问题,无法编译通过。本文档记录下win10上的编译过程,供有需要的小伙伴使用 一、需要安装的软件…

Halcon机器视觉和运动控制软件通用框架,24年1月最新版新增UI设计器,插件式开发,开箱即用 仅供学习!

24年1月更新 下载点我 此版本已经添加ui设计器。具体功能如上所示,可以自定义变量,写c#脚本,自定义流程,包含了halcon脚本和封装的算子,可自定义ui,通过插件形式开发很方便拓展自己的功能。 ui设计器

SpringMVC源码解析——HTTP请求处理

在SpringMVC源码解析——DispatcherServlet的逻辑处理中,最后介绍到了org.springframework.web.servlet.DispatcherServlet的doDispatch方法中关于处理Web HTTP请求的核心代码是调用AbstractHandlerMethodAdapter类的handle方法,源码如下: /*…

登录验证

会话技术 会话 打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求与响应 会话跟踪 一种维护浏览器的方法 服务器需要识别多次请求是否来自于同一浏览器 以便在同一次会话的多次…

【leetcode】力扣算法之相交链表【中等难度】

题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数…

[VUE]3-路由

目录 路由 Vue-Router1、Vue-Router 介绍2、路由配置3、嵌套路由3.1、简介3.2、实现步骤3.3、⭐注意事项 4、⭐router-view标签详解 ​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅…

Java并发 - Java中所有的锁

Java 中提供了多种锁机制,用于实现多线程之间的同步和互斥。 1. 乐观锁&悲观锁 1.1 特点 乐观锁:假定多个事务之间很少发生冲突,操作不加锁。发生错误的时候进行回滚或重试。 悲观锁:假定冲突可能频繁发生,先…

放大镜Scratch-第14届蓝桥杯Scratch省赛真题第3题

3. 放大镜(50分) 评判标准: 10分:满足"具体要求"中的1); 15分:满足"具体要求"中的2); 25分,满足"具体要求"中的3&#xff…

Cadence Editor 关于画PCB相关内容

目录 一 新建PCB文件 二 指定封装库 三 导入网表 四 放置器件 五 绘制板框 六 精准定位 七 原理图与PCB的交互 八 飞线设置 九 层管理 布局布线阶段需要显示的层 十 器件位置相关 1 器件选取的基准点 2 旋转 3 对齐 4 把器件移动到底层或顶层 5 锁定与解锁 6…

C# Entity Framework 中不同的数据的加载方式

延迟加载 延迟加载是指在访问导航属性时,Entity Framework 会自动查询数据库并加载相关数据。这种方式在我们需要访问导航属性时比较方便,因为我们无需手动加载相关数据,而且只会在需要时才会进行查询,从而减少了不必要的开销。但…

Qt6入门教程 4:Qt Creator常用技巧

在上一篇Qt6入门教程 3:创建Hello World项目中,通过创建一个Qt项目,对Qt Creator已经有了比较直观的认识,本文将介绍它的一些常用技巧。 Qt Creator启动后默认显示欢迎页面 创建项目已经用过了,打开项目也很简单&#…

C语言中关于函数调用的理解

理论 关于函数调用的方式有两类:传值调用和传址调用 传值调用:函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参。 传址调用:把函数外部创建变量的内存地址传递给函数参数的一种调用方式。可以让函数和函数外面…

基于 STM32 的 MPU6050 姿态计算方法及应用

基于STM32的MPU6050姿态计算方法可以通过融合陀螺仪和加速度计的数据来实现。在本文中,我们将介绍通过MPU6050获取姿态数据,并结合姿态解算算法实现姿态估计的方法,并提供相应的代码示例。 1. 硬件连接及库配置 首先,我们需要将…

uniapp中uview组件库CircleProgress 圆形进度条丰富的使用方法

目录 #内部实现 #平台差异说明 #基本使用 #设置圆环的动画时间 #API #Props 展示操作或任务的当前进度,比如上传文件,是一个圆形的进度环。 #内部实现 组件内部通过canvas实现,有更好的性能和通用性。 #平台差异说明 AppH5微信小程…

静态网页课程设计——贾斯汀比伯歌手介绍(HTML+CSS+JavaScript)

前言 使用技术:HTMLCSSJS 主要内容:对贾斯汀比伯这名歌手进行介绍,还有他的几首比较经典的歌曲以及视频观看。 简单介绍 本网站是以介绍贾斯汀比伯为主题而展开,主要由首页、《Changes》和音乐视频组成的。首页下面的是对他介绍…

数据在内存中的存储方式

前言: 期末临近,继续复习! 今天要复习的内容是数据在内存中的存储,主要是整型与浮点两种,还有大小端的介绍。 提出问题 打印结果是255 -1 为什么? 首先我们要知道数据都是以二进制的形式存…

智能的核心依然是哲学的三个基本问题

智能的发展与哲学的三个基本问题密切相关,作为一个复杂领域,智能涉及到人类认知和行为的模拟与复制,因而也会涉及到哲学的核心问题。 存在论:智能的存在论问题涉及到什么是智能以及智能系统的本质。这包括对于意识、思维和自主性的…

酷雷曼精彩亮相CMC 2023中国元宇宙大会,助力云上VR直播

12月23日,2023中关村论坛系列活动——CMC 2023中国元宇宙大会在石景山首钢园冰壶馆成功举办。酷雷曼VR作为元宇宙领域代表企业之一受邀出席会议,分享元宇宙技术研发成果及应用方案,并为大会提供VR直播技术支持。 大咖云集,共商元宇…