一次讲清楚Linux Cron和 Spring Cron

news2024/11/19 12:33:47

定时任务是我们日常开发中经常用到的一个功能点,无论是Linux服务器上Crontab还是Spring task schedule,都会使用到cron表达式去实现定时任务的配置。不过,一定要注意,Linux cron表达式和Spring的cron表达式不一样,下面来一次讲清楚。

一,Linux cron表达式

1,长度: 5 位 (中间有一个空格)

2,字段含义和取值

分 时 天 月 周

在以上各个字段中,还可以使用以下特殊字符:

  • "*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
  • "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
  • "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
  • ","分散的数字(不一定连续),如1,2,3,4,7,9。
  • cron默认每1分钟扫描一次,全为*即为每分钟一次
  • 月字段还可以为字母L,表示每月最后一天

注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。

3,示例

示例:

每一分钟执行一次command(因cron默认每1分钟扫描一次,因此全为*即可)

*    *    *    *    *  command

每小时的第3和第15分钟执行command

3,15   *    *    *    *  command

每天上午8-11点的第3和15分钟执行command:

3,15  8-11  *  *  *  command

每隔2天的上午8-11点的第3和15分钟执行command:

3,15  8-11  */2  *   *  command

每个星期一的上午8点到11点的第3和第15分钟执行command

3,15  8-11   *   *  1 command

每晚的21:30重启smb

30  21   *   *  *  /etc/init.d/smb restart

每月1、10、22日的4 : 45重启smb

45  4  1,10,22  *  *  /etc/init.d/smb restart

每周六、周日的1 : 10重启smb

10  1  *  *  6,0  /etc/init.d/smb restart

每天18 : 00至23 : 00之间每隔30分钟重启smb

0,30  18-23  *  *  *  /etc/init.d/smb restart

每一小时重启smb

*  */1  *  *  *  /etc/init.d/smb restart

晚上11点到早上7点之间,每隔一小时重启smb

*  23-7/1  *   *   *  /etc/init.d/smb restart

每月的4号与每周一到周三的11点重启smb

0  11  4  *  mon-wed  /etc/init.d/smb restart

每小时执行/etc/cron.hourly目录内的脚本

0  */1   *   *   *  root run-parts /etc/cron.hourly

二,Spring cron表达式

1,长度:6 位 (中间有一个空格)

2,字段含义和取值

秒 分 时 天 月 周 

 注意: 和Linux cron的区别就是多一个秒的配置

  • 字段可能是一个星号*,它表示该字段可以使用的所有范围。对于周或天字段,可以使用问号(?)代替星号

  • ","分散的数字(不一定连续),如1,2,3,4,7,9

  • "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次

  • "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。

  • 周字段和月字段可以是英文名(Monday,Friday,May,October这些),取前三个字母,忽略大小写

  • 天字段可以是L,表示月的最后一天; 如果是L-1,表示月的倒数第二天

  • 周字段也可以是L,表示周的最后一天

  • 周字段可以使nL,表示每月最后的周n

  • 天字段可以是nW,表示每个月的第n周

  • 天字段可以是LW,表示每个月的最后的一周

  • 周字段可以是d#n,表示一个月的第n周的第d天

3,示例

0 0 * * * *

每天的零时零分

*/10 * * * * *

每10秒

0 0 8-10 * * *

每天8点,9点,10点

0 0 6,19 * * *

每天6点正和19点正

0 0/30 8-10 * * *

每天8:00, 8:30, 9:00, 9:30, 10:00, 10:30

0 0 9-17 * * MON-FRI

周一到周五的9点到17点

0 0 0 25 DEC ?

圣诞夜零时

0 0 0 L * *

每个月最后一天零时

0 0 0 L-3 * *

每月倒数第4天零时

0 0 0 * * 5L

每月最后的周五零时

0 0 0 * * THUL

每月最后的周四零时

0 0 0 1W * *

每月第一周的零时

0 0 0 LW * *

每月最后一周的零时

0 0 0 ? * 5#2

每个月的第二周的周五的午夜零时

0 0 0 ? * MON#1

每个月的第一个周一的午夜零时

4,注解用法

上面这些示例,都是在注解@Scheduled(cron = "0 0 0 LW * *") 中使用,还有一些快捷的方式,用法如:@Scheduled(cron = "@hourly")

@yearly (or @annually)

0 0 0 1 1 *

@monthly

0 0 0 1 * *

@weekly

0 0 0 * * 0

@daily (or @midnight)

0 0 0 * * *

@hourly

0 0 * * * *

码字不易,记得点赞关注哟

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

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

相关文章

打开谷歌浏览器远程调试功能

谷歌浏览器远程调试功能 首先我们来启动Chrome的远程调试端口。你需要找到Chrome的安装位置,在Chrome的地址栏输入chrome://version就能找到Chrome的安装路径 开启远程控制命令 文件路径/chrome.exe --remote-debugging-port9222开启后的样子(注意要关闭其他谷歌浏…

你会使用druid数据库连接池吗???

1.下载架包。下载地址:https://note.youdao.com/ynoteshare/index.html?id61e2cc939390acc9c7e5017907e98044&typenote&_time1693296531722 2.将架包加入项目文件。 创建一个lib目录,将架包复制进去 右键点击lib目录,将其添加为库。…

秋招面试总结

八股 C中传引用和传指针的区别:参考 指针传参: 本质是值传递,形参的指针变量是个临时局部变量,用来接收外部实参指针变量保存的地址值除了解引用对地址内存进行操作外,形参指针变量的其他任何操作都不会影响到外面的实…

yolov5自定义模型训练一

要拿yolo来用到自己希望使用的场合就需要自己来训练模型权重,要训练模型权重需要足够的训练数据集,数据越多训练后的模型权重越准确。 数据集需要按yolov5的格式进行收集,收集图片后需要用标注工具进行标注,常用的有LabelImg软件…

Redis——》Pipeline

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

小学生演讲与口才教案设计

教案设计:小学生演讲与口才 教学目标: 1. 培养学生的演讲能力和口才表达能力。 2. 培养学生的自信心和沟通能力。 3. 提高学生的思维逻辑和语言组织能力。 教学重点: 教学重点一:演讲技巧的培养 演讲技巧是指在演讲过程中运…

Python科研绘图--Task05

目录 SciencePlots 安装SciencePlots 安装LaTeX ① 安装 MikTex 和 Ghostscript ② 将软件的安装路径添加到系统环境变量中 SciencePlots 绘图示例 SciencePlots 虽然 Matplotlib 或 ProPlot 库能够绘制出插图结果,但用户还需要根据期刊的配图绘制要求进行…

简易虚拟培训系统-UI控件的应用3

目录 Button组件的组成 Button组件方法1-在Button组件中设置OnClick()回调 Button组件方法2-在脚本中添加Button类的监听 上一篇使用了文件流读取硬盘数据并显示在Text组件中,本篇增加使用按钮来控制显示哪一篇文字信息。 Button组件的组成 1. 新建Button&#…

由北京筑龙承建的“黔云招采—贵州高速板块”正式上线

8月28日,由北京筑龙承建的黔云招采电子招标采购交易平台首个行业板块——贵州高速板块正式上线运行。该板块实现了资源共享和数据隔离,提升了系统可扩展性和业务灵活性,切实满足了贵州高速集团交易业务独立运营的要求。 贵州高速板块由黔云招…

HTML之动态点连线

做一个动态点连线的效果。 每个点会随机进行移动&#xff0c;点移动到靠近的点之后&#xff0c;就会连接到这个点&#xff0c;以此类推。 详情注释看源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8&quo…

L1-041 寻找250(Python实现) 测试点全过

题目 对方不想和你说话&#xff0c;并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。 输入格式 输入在一行中给出不知道多少个绝对值不超过1000的整数&#xff0c;其中保证至少存在一个“250”。 输出格式&#xff1a; 在一行中输出第一次出现…

Java异常-Could not initialize plugin: interface org.mockito.plugins.MockMaker

跑单元测试&#xff0c;报如下错误&#xff1a; java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) …

LLM本地知识库问答系统(二):如何正确使用LlamaIndex索引

推荐阅读列表&#xff1a; LLM本地知识库问答系统&#xff08;一&#xff09;&#xff1a;使用LangChain和LlamaIndex从零构建PDF聊天机器人指南 上一篇文章我们介绍了使用LlamaIndex构建PDF聊天机器人&#xff0c;本文将介绍一下LlamaIndex的基本概念和原理。 LlamaIndex简介…

十年测试工程师叙述自动化测试学习思路

自动化测试介绍 自动化测试(Automated Testing)&#xff0c;是指把以人为驱动的测试行为转化为机器执行的过程。实际上自动化测试往往通过一些测试工具或框架&#xff0c;编写自动化测试用例&#xff0c;来模拟手工测试过程。比如说&#xff0c;在项目迭代过程中&#xff0c;持…

正则常见问题及解决方案

使用正则处理问题的基本思路。有一些方法比较固定&#xff0c;比如将问题分解成多个小问题&#xff0c;每个小问题见招拆招&#xff1a;某个位置上可能有多个字符的话&#xff0c;就⽤字符组。某个位置上有多个字符串的话&#xff0c;就⽤多选结构。出现的次数不确定的话&#…

WSL /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

/sbin/ldconfig.real: Can’t link /usr/lib/wsl/lib/libnvoptix_loader.so.1 to libnvoptix.so.1 /sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link 解决&#xff1a;https://github.com/microsoft/WSL/issues/5548 There is another solution w…

使用Spring Boot和Kafka实现消息订阅和发送

文章目录 一&#xff0c;新建Spring Boot1&#xff0c;Maven配置2&#xff0c;无法识别为SpringBoot项目3&#xff0c;无效的源发行版4&#xff0c;无法访问SpringApplication5&#xff0c;运行直接Finish6&#xff0c;服务运行成功 二&#xff0c;安装启动Kafka1&#xff0c;下…

RHCE——十二、Mysql服务

Mysql服务 一、什么是数据库1、数据&#xff1a;2、数据库&#xff1a; 二、mysql概述三、版本及下载四、yum仓库安装1、添加yum源2、安装3、后续配置 五、本地RPM包安装1、使用迅雷下载集合包2、上传数据3、安装 六、生产环境中使用通用二进制包安装1、作用2、软件包下载3、使…

three.js(六):自适应设备分辨率

自适应设备分辨率 当今大多数的PC端和移动端显示器都是HD-DPI显示器。HD-DPI 是High Definition-Dots Per Inch 的简称&#xff0c;意思是高分辨率显示器。不同设备的显示器的分辨率是不一样的。 以上图中的iPhone6/7/8 为例&#xff1a;375*667 代表的手机的屏幕的物理尺寸&a…

Spring-5.0.x源码下载及本地环境搭建

一、Spring源码下载 从github上下载Spring的源代码 下载地址&#xff1a;https://github.com/spring-projects/spring-framework 访问地址之后&#xff0c;打开Spring的代码页面找到你想下载的版本&#xff0c;如5.0.x&#xff0c;如下图所示&#xff1a; 下载方式一&#x…