一看就懂:cron 表达式

article/2025/9/18 23:19:37

【前言】

不知道你在玩游戏的时候是否发现过以下情况:

(1)玩某些游戏的时候,发现他的排行榜并不是时时更新的,而是每半个小时,或者一个小时更新一次。

(2)又比如很火的王者荣耀手游,它的日常任务,都是每天5点进行更新。

那么,这些时间控制,到底是由谁控制得如此精准呢?原来,这些都是corn表达式的功劳。

【1】什么是cron表达式 ?

在了解之前,我们先举几个例子,看看corn表达式长什么样子(这是我实际工作中的cron表达式具体应用场景)。

可以看到,corn表达式就是:由若干数字、空格、符号按一定的规则,组成的一组字符串,从而表达时间的信息。 

好像和正则表达式有点类似哈,都是一个字符串表示一些信息。

【2】cron 表达式标准结构

那么这个规则究竟是怎样的呢?我们继续往下了解。

从上面的三个例子中,我们可以看到,这个字符串被5个空格分成了6个部分。

假设我们以ABCDEF举例,它的标准格式为:"A B C D E F" 。

【3】cron 表达式具体含义

这个ABCDEF到底是什么意思呢?接下来是画重点的地方,认真看:

A表示秒,B表示分,C表示小时,D表示日,E表示月,F表示星期

故:"A B C D E F" --> "秒 分 时 日 月 星期"

可能有的人要跟我急了,为什么没有年呢?其实星期后面就是年,但这个年可加可不加,加上就是 "A B C D E F G" 格式。

为什么通常不加年呢?你见过哪些程序会指定在哪一年跑的?或者每几年跑一次的?

所以,年的实用性不大,加上又为了书写方便,规则上就干脆省掉了!当然加上也没错!

【4】前例解释

根据上面截图中的三个例子,我们这里提取出来,算了,直接再发一次:

从注释里我们可以了解到:

第1个:它的秒位为0,表示每个0秒,分位为*/5,意思是每5分钟。所以总的来说就是每5分钟(每5分0秒)时执行一次;

第2个:它的秒位为0,分位为30,时位为一串集合,则它的意思是每天 8点半、10点半、12点半、14点半、16点半、21点半各执行一次;

第3个:我想你已经知道它的意思了,没错,它就是每个小时整点(整点0分0秒)执行一次。

从上面三个列子中,我想你已经了解了orcn表达式的大致意思了:数字则表示具体时间,* 则表示任意时间,*/x 则表示每多少时间,还可以用集合表示具体的几个时间点。

【5】更多例子

(5.1)用短横线(-)表示时间段:

比如:我们的上班时间朝9晚6为(周一到周五的早上9点到晚上6点),则cron表达式为:0 0 9-18 * * MON-FRI

星期一到星期天的英文为:Monday,Tuesday、Wednesday、Thursday、Friday、Saturday 、Sunday ,取前三个字母,然后大写表示星期。

(5.2)用L表示最后,L是单词Last(最后的)的首字母:

比如:假设每个最后一天,下午2点发工资的时间,则cron表达式为:0 0 14 L * ?

注:如果没有具体说明是星期几,通常用问号代替。

其他不常用的功能 #,W 这里不就介绍了,想知道的朋友可以自己去查阅资料,因为在实际工作中,用得极少。

而我们最常用的就是在某个时间点,或者某些时间点执行程序,也就是【4】中的前例解释。

【6】cron 表达式用途

如前言所示,cron 表达式最主要的就是在程序中做一些定时任务,比如某些系统的报表数据,某些游戏的排行榜,由于这些数据量实时统计非常消耗程序性能,所以就每隔一段时间,通过自动任务跑一次,这样可以极大的提升用户浏览体验,要是在游戏里,还可以增加一种神秘感。

另外,某些具体点的数据拉取,比如你如果从事平台对接工作,要从某些平台下载你的订单,那么肯定是每隔多久抓一次。

又比如你写个爬虫,要实时的了解你的某些数据,然后从这些数据中反应你的情况。

比如:我的CSDN每小时访问情况(每小时获取一次CSDN访问数据)

实战例子:springboot基于注解实现自动任务

【7】牛刀小试

下面的几个 cron 表达式 各自是什么意思呢?(下滑查看答案)

(1)0 0 15 1 10 * 1949

(2)0 30 */2 * * ?

(3)1,3,5 0 1-5 L * ?

答案:

(1)1949年10月1日下午3点,开国大典时间(是不是又涨知识了)。

(2)每2小时第30分0秒执行

(3)每个月最后一天的1到5点,然后这几个点内的每个0分1秒,0分3秒,0分5秒各执行一次。

你都答对了吗?答对了都还不右上角大拇指走起 [滑稽] !


http://chatgpt.dhexx.cn/article/2fcC4N4O.shtml

相关文章

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

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

使用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/ 下载完成之…