cron表达式的详细介绍(各域说明以及举例说明)

article/2025/9/18 23:17:56

cron表达式的详细介绍(各域说明以及举例说明)

  • 1. 关于 cron
    • 1.1 前言
    • 1.2 使用 cron 的注意点
    • 1.3 举个例子
  • 2. cron表达式的格式(或语法)
  • 3. 各域的含义——如何取值?
    • 3.1 各域的含义介绍
    • 3.2 特殊字符的含义
    • 3.3 简单举例说明及使用效果

1. 关于 cron

1.1 前言

  • 这两天在弄定时任务,感觉 cron 表达式挺有意思,有必要写下来供大家参考学习。
  • 了解过 crontab 的应该都知道 crontab 怎么配置定时任务,其实cron 与 crontab 差不多,但需要注意的是:cron 表达式从左往右,从开始;而 crontab 则是从分钟开始的。

1.2 使用 cron 的注意点

  • cron 表达式是一个字符串,包含五个七个空格分隔的字段(每种软件不一样,需要注意:LinuxJava(Spring)Java(Quartz) 的区别,本文主要以Java为主,说一下 cron 表达式),表示一组时间,通常作为执行某个程序的时间表。
  • 注释以注释标记#开始,并且必须单独在一行上。

1.3 举个例子

  • 看下面的错误信息:
    在这里插入图片描述
    在这里插入图片描述
  • 原因是Spring 的表达式 只是 cron表达式的子集,它不包含year字段,并且不能使用部分特殊字符,比如上面的 #。
  • 举这个两个报错信息是干什么呢?意思是下面关于的特殊字符都会介绍,但是有可能你在使用的时候,因为使用的软件不一样,可能效果没用达到,但是不代表语法有误,你要分场合分情况使用,这点在此特别说明一下!

2. cron表达式的格式(或语法)

  • 比如,cron = "0 30 * * * ? " 代表啥意思呢?往下看,看完你就会明白了!
  • Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:
 ① Seconds Minutes Hours DayofMonth Month DayofWeek ② Seconds Minutes Hours DayofMonth Month DayofWeek  Year
  • 即:
秒  分钟  小时  日期   月份  星期  年(年份可留空,通常省略)

3. 各域的含义——如何取值?

3.1 各域的含义介绍

每一个域都使用数字,但还可以出现下面表格里的特殊字符,如下表格:

 取值范围允许的特殊字符是否必填备注
秒-Seconds0~59的整数,  -  *   / 四个字符 是 标准实现不支持此字段。
分钟-Minutes0~59的整数,  -  *  / 四个字符
小时-Hours0~23的整数,  -  *  / 四个字符
日期-DayofMonth1~31的整数(但是你需要考虑你月的天数), -  *   /  ?  L  W  C 八个字符?LW只有部分软件实现了
月份-Month1~12的整数 或者  JAN-DEC,  -  *  / 四 个字符
星期-DayofWeek1~7的整数 或者  SUN-SAT,  -  *  /  ?  L  C  # 八个字符? L #只有部分软件实现了, Linux 和 Spring 的允许值为0-7,0和7为周日;Quartz的允许值为1-7,1为周日
年-Year1970~2099,  -  *  / 四个字符标准实现不支持此字段。

3.2 特殊字符的含义

 含义解释说明
*表示匹配该域的任意值如果在 Minutes 域使用 * , 则表示每分钟都会触发事件。
,表示列出枚举值如果在Hours 域中使用 9,10 则表示上午9点和10点会出发事件。
-表示范围如果在 Seconds 域中使用 5-8 ,则表示 5秒、6秒、7秒、8秒 时间点会触发事件
/表示起始时间开始触发,然后每隔固定时间触发一次如果在 Seconds 域中使用 6/10 ,则表示从06秒开始,每10秒执行一次,即:会在 06,16,26,36,56时间点触发事件,也就是说:在 Seconds 域中配置 6/10 和 配置 06,16,26,36,56 效果一样
?只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。(可以理解成是 * 的第二种特殊写法)例如:15 30 12 9 * ? ,表示的是每月9号的中午12:30:15发工资,此时 DayofWeek 这个域就要用 ? 而不能用 *(表示每周每天,而我们只要9号一天)
L表示最后Last,只能出现在 DayofWeek 和 DayofMonth 域。① 用在DayofMonth 域中(直接写L),可以指定一个月的最后一天;② 用在 DayofWeek 域中指定当月最后一个星期X(比如:2L指本月最后一个星期二)
W表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件例如:在 DayofMonth 使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。
LW这两个字符可以连用,表示在某个月最后一个工作日,即当月最后一个星期五。
C代表“Calendar”的意思。但是没发现加C和不加C的区别。例如:15 30 12 9 * ?,用9和9C的效果一样。
#用于确定每个月第几个星期几,只能出现在DayofWeek域。比如,4#2,表示某月的第二个星期三(4代表星期三,2代表第几个)。例如:15 30 12 ? * 4#2表示:每月第二个星期三的12:30:15秒执行

3.3 简单举例说明及使用效果

  • 比如:cron = “6/10 * * * * ?”,06秒开始,然后每次间隔10秒
    在这里插入图片描述
    为了方便,接下来我们举例都直接在线验证效果啦!
  • 比如:0 10,30 12 * * ? 或者 0 10,30 12 ? * *,每天12点的10分和30分执行任务
    在这里插入图片描述
  • 比如:0 30 14-17 * * ? *,每天下午14点到17点中的半点执行
    在这里插入图片描述
    好了,就简单举几个就行了,比葫芦画瓢的东西,自己看着画吧
    • 推荐几个自动生成以及验证cron的网址:
    • https://www.matools.com/cron.
    • http://cron.ciding.cc/.
    • https://cron.qqe2.com/.
    • https://www.bejson.com/othertools/cron/.
  • 上述网站,喜欢就用,不喜欢别吐槽,自己厉害也不用他们,自己再厉害也可以做个给我们大家!

http://chatgpt.dhexx.cn/article/tmjcU1Jj.shtml

相关文章

使用cron定时执行任务

本文主要介绍Unix系统中用于定时执行任务的cron守护程序和crontab配置表的文件格式,并对自动执行脚本文件时的注意事项进行了说明,主要包括以下几个方面: cron守护程序概述crontab配置表crontab配置举例执行命令脚本 cron是一个用于执行计划…

cron计划任务

这里写目录标题 总结一、cron(crond)简介二、crontab命令1.命令格式:2.命令功能:3.命令参数:第一种形式(将原先存在的文件加入到corn中)第二种形式(用命令行的形式加入到…

Cron表达式

Cron表达式语法 一、结构 corn从左到右(用空格隔开):秒 分 小时 日 月 星期 年 二、各字段的含义 (1)*:表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件。 (2&#x…

C语言结构体内存对齐

结构体内存对齐 如何计算结构体的大小? 首先得掌握结构体的对齐规则: 1.第一个成员在与结构体变量偏移量为0的地址处。(将第一个成员放在结构体内存的第0处) 2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。(从0地…

C语言结构体对齐详解

文章目录 一、C语言结构体对齐大小快速判断二、反汇编角度看结构体三、总结 一、C语言结构体对齐大小快速判断 在C语言中定义一个结构体&#xff0c;里面具体占用多少个字节呢&#xff0c;先举一个例子&#xff0c;如下&#xff1a; #include<stdio.h> #pragma pack(8)…

C语言结构体传参

目录 C语言结构体传参1. 普通传参1.1 测试代码1.2 测试结果1.3 结果分析 2. 单指针传参2.1 修改结构体数据2.1.1 测试代码2.1.2 测试结果2.1.3 结果分析 2.2 修改结构体地址2.2.1 测试代码2.2.2 测试结果2.2.3 结果分析 3. 双指针传参3.1 测试代码3.2 测试结果3.2 结果分析 C语…

C语言 结构体

1什么是结构体 结构体是一种集合&#xff0c;它里面包含了多个变量或数组&#xff0c;它们的类型可以相同&#xff0c;也可以不同&#xff0c;每个这样的变量或数组都称为结构体的成员。结构的成员可以是标量、数组、指针&#xff0c;甚至是其他结构体。 2结构体的定义 (1&a…

c语言:结构体(详解)

初识结构体 一.结构体声明1.结构体的概念2.声明 二.结构体的基础使用三.结构体变量的定义和初始化四.空结构体五.柔性数组1.定义2.使用 六.结构体内存对齐七.位端 一.结构体声明 1.结构体的概念 结构体是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同…

C语言结构体详解

目录 一、结构体的基本概念 举个例子 二、结构体变量 三、结构体占用的内存情况 举个例子 运行效果 再次运行 四、结构体的变量名 五、结构体初始化 五、结构体初始化 举个例子 运行效果 六、结构体成员的访问 举个例子 运行效果 八、结构体指针 举个例子 运行效…

C语言结构体超详解(小白一看就懂,多维度分析!!!!)

目录 一、前言 二、结构体详解 &#x1f350;什么是结构体 &#x1f34e;结构体的定义与基础结构 &#x1f351;结构体的使用 &#x1f4a6;结构体的初始化 &#x1f4a6;结构体的成员访问 &#x1f4a6;结构体数组 &#x1f4a6;结构体指针--------------指向结构体变…

C语言之结构体(进阶篇)

目录 1.结构体的内存对齐​ 如何计算呢&#xff1f;​ 掌握结构体的对齐规则&#xff1a; 为什么存在内存对齐呢&#xff1f;​ ​​​​​​​offsetof​ 位段​ 什么是位段&#xff1f;​ 比如&#xff1a; 位段的内存分配​ 举个例子 位段的跨平台问题&#xff1a;​ 枚举…

C语言——结构体(全)

目录 一、结构体的设计 二、结构体变量的初始化 2.1结构体在内存表示&#xff1b; 2.2结构体初始化&#xff1b; 2.3结构体指针变量 2.4结构体嵌套结构体 三、结构体成员访问 3.1、结构体成员访问 3.2、结构体变量和指针 ​3.3、结构体和函数 四、结构体与数组 五、…

Github客户端下载慢的解决方法

Github客户端下载慢的解决方法 Github客户端下载解决方法获取下载连接 Github客户端下载 Github客户端的下载地址是——Github客户端下载。 但是下载速度特别慢&#xff0c;最快也就十几K。 解决方法 使用迅雷下载&#xff1a;将Github客户端的下载地址复制到迅雷中&#…

windows平台下使用Github(2 创建代码仓库,安装Github客户端.)

本文会分章节的来介绍如何在windows平台下使用GitHub 一、注册Github账号 查看 二、创建代码仓库&#xff0c;安装Github客户端.查看 三、Github上传和下载(1 客户端方式)查看 四、Github上传和下载(2 命令行方式)查看 1、创建一个代码托管仓库。 点击右上角的 号或者点…

github客户端进行token认证

从 2021 年 8 月 13 日起&#xff0c;GitHub 在对 Git 操作进行身份验证时不再接受帐户密码。您需要添加 PAT&#xff08;个人访问令牌&#xff09;&#xff0c;您可以按照以下方法在您的系统上添加 PAT。 git - Support for password authentication was removed. Please us…

【解决】GitHub 客户端下载后安装在哪里?

GitHub Desktop 配置环境变量GitHub 安装路径GitHub Shell、Bash 环境是 Windows 10。 从 GitHub 官网下载了 GitHub 的 Desktop 版本之后&#xff0c;它其实不仅是一个 GUI&#xff0c;还带了 Shell&#xff08;Bash&#xff09;&#xff0c;但是发现找不到它们是被安装在哪个…

GitHub客户端上传本地代码

创建GitHub账号、安装GitHub客户端登录GitHub网站、在客户端登录账户创建新的代码存放处 填写及勾选一些信息 复制此代码存放处的路径 利用客户端上传代码 第一步&#xff1a;点击第五步的Open in Desktop&#xff0c;打开本地客户端 第二步&#xff1a;点击下图蓝色选中选…

你们心心念念的 GitHub 客户端终于来了!

点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 For something,we cant understand when we are young but by the time we understand,we are no longer young. 有些事情&#xff0c;当我们年轻的时候无法懂得&#x…

GitHub客户端的使用方法

一&#xff1a;创建自己的GitHub账号 GitHub官网链接 https://github.com/ 自行创建账号&#xff0c;因本文主要介绍GitHub客户端的使用方法&#xff0c;所以注册账号略 二&#xff1a;下载GitHub客户端 GitHub客户端下载的官网链接 https://desktop.github.com/ 下载完成之…

gitHub客户端的安装与使用总结

一、第一步 注册github账号 1.注册界面 https://github.com/&#xff0c;如下图&#xff1a; 2.下注册流程 3.上面简单的输入一下用户名、邮箱地址、密码点击创建即可&#xff0c;进入下一步&#xff0c;如下图&#xff1a; 如果勾选了“Help me set up an organization next”…