@scheduled注解配置时间_SpringBoot2.0实战(32)配置定时任务

e143e7b8395d66b30e487b4204e50719.png

定时任务的几种实现方式:

  • Timer:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。
  • Quartz:使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。
  • Spring Task:Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。

目标

在 SpringBoot 项目实现每秒打印一次当前时间

实战

第一步:添加依赖

引入 Spring Boot Starter 父工程

625f4f92143c9adfd545a1dd57e38564.png

添加 spring-boot-starter-web 的依赖,添加后的整体依赖如下

3c775ddcbc3602f0993e31250ae61e5b.png

第二步:编写启动类

d2a6aa0f3a08090a694808870c26d8de.png

第三步:编写定时任务调度类

  • 通过 @EnableScheduling 注解,开启定时任务调度功能
  • 通过 @Scheduled 注解在需要执行的方法上,使用 cronExpression 表达式定义定时任务的执行策略

文章最后会详细讲解 cronExpression 表达式

351a10353715132647683c81b624f2b7.png

第四步:验证

启动项目,查看日志

time : 07:23:45time : 07:23:46time : 07:23:47time : 07:23:48time : 07:23:49

源码地址

本章源码 : https://gitee.com/gongm_24/spring-boot-tutorial.git

扩展

cronExpression 表达式

表达式结构

秒 分钟 小时 日期 月份 星期 年

配置说明

5680d81e035f499600e77e8c51428517.png

特殊字符说明:

  • 星号(*)

可用在所有字段下,表示对应时间域名的每一个时刻,如*用在分钟字段,表示“每分钟”。

  • 问号(?)

只能用在日期和星期字段,代表无意义的值,比如使用L设定为当月的最后一天,则配置日期配置就没有意义了,可用?作占位符的作用。

  • 减号(-)

表示一个范围,如在日期字段5-10,表示从五号到10号,相当于使用逗号的5,6,7,8,9,10

  • 逗号(,)

表示一个并列有效值,比如在月份字段使用JAN,DEC表示1月和12月

  • 斜杠(/)

x/y表示一个等步长序列,x为起始值,y为增量步长值,如在小时使用1/3相当于1,4,7,10当时用*/y时,相当于0/y

  • L

L(Last)只能在日期和星期字段使用,但意思不同。在日期字段,表示当月最后一天,在星期字段,表示星期六(如果按星期天为一星期的第一天的概念,星期六就是最后一天。如果L在星期字段,且前面有一个整数值X,表示“这个月的最后一个星期X”,比如3L表示某个月的最后一个星期二。

  • W

选择离给定日期最近的工作日(周一至周五)。例如你指定“15W”作为day of month字段的值,就意味着“每个月与15号最近的工作日”。所以,如果15号是周六,则触发器会在14号(周五)触发。如果15号是周日,则触发器会在16号(周一)触发。如果15号是周二,则触发器会在15号(周二)触发。但是,如果你指定“1W”作为day of month字段的值,且1号是周六,则触发器会在3号(周一)触发。quartz不会“跳出”月份的界限。

  • LW组合

在日期字段可以组合使用LW,表示当月最后一个工作日(周一至周五)

  • 井号(#)

只能在星期字段中使用指定每月第几个星期X。例如day of week字段的“6#3”,就意味着“每月第3个星期五”(day3=星期五,#3=第三个);“2#1”就意味着“每月第1个星期一”;“4#5”就意味着“每月第5个星期3。需要注意的是“#5”,如果在当月没有第5个星期三,则触发器不会触发。

  • C

只能在日期和星期字段中使用,表示计划所关联的诶其,如果日期没有被关联,相当于日历中的所有日期,如5C在日期字段相当于5号之后的第一天,1C在日期字段使用相当于星期填后的第一天

示例:

dce46757e126e56c62d3944d053de00a.png

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

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

相关文章

小心 Enum Parse 中的坑

小心 Enum Parse 中的坑Intro最近使用枚举的时候,踩了一个小坑,分享一下,主要是枚举从 int 值转成枚举时可能会遇到Sample来看下面的示例:首先定义一个枚举:public enum Color : byte {Red 0,Green 1,Blue 2, }来看…

python判断列表是否为空_Jinja2: 判断返回的列表是否为空

我们在使用 Python 或者 Ansible 来进行自动化任务的时候常常会进行一些数据的组合和提取来生成文件。但是我们需要为不同的情况来做分析和进行判断。如果我们需要对返回的 list 来进行提取的时候我们常常只是运行一个 for loop 就解决了问题。如果输出如下所示:{&q…

在php中使用kind,KindEditor 4.x在PHP中的应用实例!

1.解压放入php项目静态资源文件夹,如下图:Paste_Image.png2.如果只是php使用,可以删除其它类型语言的文件夹,文件结构如下图:Paste_Image.png3.打开php文件夹,更改upload_json.php里文件上传目录文件夹至Up…

你的朋友国庆假期都去了哪里玩?微信大数据告诉你!最远的朋友圈签到竟然来自……

国庆中秋八天假 你是出门四处浪浪浪了 还是躺在家里看朋友圈里的世界名景 10月8日,微信发布《国庆假期微信大数据报告》 从出境人数、热门地区、境外消费等角度 全方位展示国庆期间微信用户的出游情况 哪些城市的人最爱出境游? 哪个国家是最热门的出境目…

mysql安装版和解压版哪个好_红米k30pro变焦版和荣耀30pro哪个好-哪个更值得入手...

红米k30pro变焦版和荣耀30pro,两款手机都有着很强的性能配置,也在同等的价位上,今天我们就来对比一下,看看红米k30pro变焦版和荣耀30pro哪个性价比更高,有哪些配置区别!一、主要参数对比荣耀30 Pro红米K30 …

记一次CPU持续100%及分析方法

背景 某天晚上八点多,突然收到一个 CPU 爆表的告警。过了一会,几个业务线就开始反馈系统变慢了。后面紧急处理了这台机器后,让业务先恢复正常。后续看了一下监控,拔凉拔凉的。这个服务是比较重要的一个老业务,.NET Fra…

php中请写出定义变量的两种方法,php定义变量几种

1、定义常量define("CONSTANT", "Hello world.");常量只能包含标量数据(boolean,integer,float 和 string),调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号。注: 常量和…

c语言三目运算符_C语言中的三目运算符是啥?有何用处?

一般来说,C语言中的三目运算符为a?b:c即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:表达式1? 表达式2:表达式3求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否…

Dotnet的局部函数和委托的对比

上一篇说了一下委托,这篇来说说局部函数和委托的对比。把委托和局部函数放成前后篇,是因为这两个内容很像,用起来容易混。需要了解委托相关内容,可以看这一篇 【传送门】使用委托表达式(Lambda)假设一个场景:我们有一个…

经纬度 c代码中定义_如何将TXT文本格式的批量经纬度值导入到奥维成为标签

文本编辑:示例1:最基本的,只批量导入WGS-84经纬度值成为标签,不需要导入标签名称。 文本编辑格式:经度值空格纬度值换行,如下图:示例2:除WGS-84经纬度外,还要导入标签名称…

中国式创新技术“步态识别”终于来临,你大胆地走两步,我就知道你是谁

放完假的数据君,回到办公室,苦恼该码一篇什么文章,来给各位送上“节后的祝福”。 这么想着,数据君便开始浏览最新的科技报道: 什么鬼!这难道是什么新兴的黑科技吗?! 数据君赶紧查了…

帆软获取上月的第一天与最后一天_《原神》岩港打工第一天怎么玩 岩港打工第一天玩法攻略...

《原神》在11月2日开启了岩港奇珍行记,玩家可以在璃月港进行打工了,可能有的小伙伴还不清楚第一天的打工要怎么做,所以小编这次就为大家带来了《原神》岩港打工第一天玩法攻略,感兴趣的小伙伴可以来看一下。岩港打工第一天玩法攻略…

mysql卸载时弹框,win10卸载mysql5安装mysql8

使用mysql5的过程中使用 datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP 无法执行,原因是版本问题,因此我需要安装更高级的版本。一、卸载原有的mysql1、在控制面板中卸载mysql2、运行“regedit”文件,删除HKEY_LOCAL_MACHINE\SYSTEM\Co…

感谢Adobe,用上了Silverlight RC0版本

Adobe 23号发布CS4系列,24号网络上出现下载, MicorSoft 25号发布Silverlight RC0,26号网络上出现下载。 用上了Silverlight RC0, 真的要感谢Adobe,推出全新体验的Adobe Flash CS4正式版,也是Flash 10&#…

css中的单位换算_金蝶ERP入门教程:动态换算率及辅助计量单位的应用

金蝶ERP入门教程:动态换算率及辅助计量单位的应用关注我,我将定期分享更多的ERP解决方案如果您喜欢且觉得内容有用,请点击分享转发如果你有什么关于ERP系统的问题和疑问,可私信联系我大家好,我是Eric顾问哥&#xff1a…

因为加班,谈了7年的女友跟我分手了……

记得有一句很流行的话: 世界那么大,我想去看看 此时的你,走到了哪里? 还是停留在这里吗? 世界很小,小到仅有这几尺办公桌 工作很多,多到生活只余下工作 最近,腾讯上线了一支视频广告…

cf鼠标宏数据大全_游戏鼠标中的跑车,贱驴125M游戏鼠标体验!

如今全民玩游戏的年代,每个年轻人对自己玩游戏的装备也越来越看重。也越来越喜欢在这方面花钱,因为高手过招输赢本就在毫厘之间,如果能够拥有一款性能更强,使用更顺手的游戏装备,在玩游戏竞赛中,无疑有多了…

如何使用 Entity Framework 的 DbContext

微软的 Entity Framework 是一个开源的 对象-关系映射 ORM 框架,它帮助我们打通了 数据库的数据模型 到 代码层的领域模型,Entity Framework 简化了应用程序对数据库的 CURD 操作,而且还向高层屏蔽了数据是如何持久化到数据库的。说的具体一点…

php绘制饼图,php怎么绘制饼图?

php怎么绘制饼图?在php中,可以使用GD绘制饼图。GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。PHP中用GD绘制饼图,绘制…