定时器@Scheduled使用

四种调度方法

@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.hqwc.cn/news/329459.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

04-微服务-Nacos

Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 1.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在…

P4994 终于结束的起点————C

目录 终于结束的起点题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示样例 1 解释数据范围提示 解题思路Code运行结果 终于结束的起点 题目背景 终于结束的起点 终于写下句点 终于我们告别 终于我们又回到原点 …… 一个个…

WorkPlus AI助理为企业提供智能客服的机器人解决方案

在数字化时代,企业面临着客户服务的重要挑战。AI客服机器人成为了提升客户体验和提高工作效率的关键工具。作为一款优秀的AI助理,WorkPlus AI助理以其智能化的特点和卓越的功能,为企业提供了全新的客服机器人解决方案。 为什么选择WorkPlus A…

WinForms中的UI卡死

WinForms中的UI卡死 WinForms中的UI卡死通常是由于长时间运行的操作阻塞了UI线程所导致的。在UI线程上执行的操作,例如数据访问、计算、文件读写等,如果耗时较长,会使得UI界面失去响应,甚至出现卡死的情况。 解决方法 为了避免…

家里有必要买NAS吗?

完全没有必要,因为用旧电脑搭建NAS不仅价格实惠,而且非常简单,效果也完全不差买了的! 并且......还环保 教程链接: 用旧电脑搭建NAS在您的家庭中,通过将旧 PC 转变为NAS服务器,您可以轻松搭建…

【Unity美术】如何用3DsMax做一个水桶模型

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

实验室管理系统建设方案(LIMS)

1.实验室管理系统 1.1.系统概述 需求描述 实验室管理系统通过先进的数据处理技术对实验室进行全面管理,促进实验室检测流程的信息化、规范化,同时强化实验室检测数据的组织、分析、查询和输出,并对实验过程中的质量因素进行严格控制。 1.1…

2024--Django平台开发-Django知识点(四)

1.知识回顾 创建项目&#xff1a;新项目、别人项目、新版版、老版本 项目目录&#xff08;v1.0版本&#xff09; 路由系统 常见路由编写加粗样式 /index/ 函数 /index/<str:v1> 函数 re_path(ryy/(\d{4})-(\d{2})-(\d{2})/, views.yy), re_path(ryy/(?…

dnSpy调试工具二次开发1-新增菜单

测试环境&#xff1a; window 10 visual studio 2019 版本号&#xff1a;16.11.15 .net framework 4.8 开发者工具包 下载 .NET Framework 4.8 | 免费官方下载 .net 5开发者工具包 下载 .NET 5.0 (Linux、macOS 和 Windows) 利用git拉取代码(源码地址&#xff1a;Gi…

测试分类篇

小王学习录 测试分类按测试对象划分1. 界面测试2. 可靠性测试3. 容错性测试4. 文档测试5. 兼容性测试6. 易用性测试7. 安装卸载测试8. 安全测试9. 性能测试10. 内存泄露测试 按是否查看代码划分1. 黑盒测试2. 白盒测试3. 灰盒测试 按开发阶段分1. 单元测试2. 集成测试3. 系统测…

秒懂百科,C++如此简单丨第十五天:指针

目录 必看信息 Everyday English 前言 &#x1f4dd;了解指针 &#x1f4dd;定义指针 &#x1f4dd;分析指针 &#x1f4dd;运用指针 总结 必看信息 ▶本篇文章由爱编程的小芒果原创&#xff0c;未经许可&#xff0c;严禁转载。 ▶本篇文章被收录于秒懂百科&#xff0c…

代码整洁之道:一个提升代码可读性的小技巧

写在开头 如何写好代码&#xff0c;一千个人眼中有一千个哈姆雷特&#xff0c;但是我认为有一点的是写好代码的公理&#xff0c;不可撼动&#xff0c;即对代码可读性的追求。最近在工作中面对了太多可读性不佳的代码&#xff0c;使得对于旧有代码的维护和分析困难重重&#xf…