Cron表达式与实际应用场景

举报
久绊A 发表于 2023/12/23 09:17:31 2023/12/23
【摘要】 Cron 表达式 简介Cron的历史可以追溯到UNIX操作系统的早期。Cron(来自希腊语"chronos",意为时间)是一种用于在预定时间执行计划任务的实用程序。起源: Cron最早出现在1970年代早期的UNIX系统中。它的目的是为了在多用户的UNIX环境中,通过预定任务的执行时间来减轻系统资源的压力。基本原理: Cron使用简单的文本文件(通常称为crontab文件)来存储和管理任务的...

Cron 表达式 简介

Cron的历史可以追溯到UNIX操作系统的早期。Cron(来自希腊语"chronos",意为时间)是一种用于在预定时间执行计划任务的实用程序。

起源: Cron最早出现在1970年代早期的UNIX系统中。它的目的是为了在多用户的UNIX环境中,通过预定任务的执行时间来减轻系统资源的压力。

基本原理: Cron使用简单的文本文件(通常称为crontab文件)来存储和管理任务的调度信息。每个用户都有自己的crontab文件,其中包含他们的定时任务。

语法演变: Cron表达式的语法在演变过程中有所修改,但基本原理一直保持不变。最初的版本可能较为简单,但后来的变化使得Cron表达式更加灵活和强大。

标准化: 随着时间的推移,Cron的标准化得到了改进,以确保在不同的UNIX系统和类UNIX系统上的一致性。这有助于使Cron在各种环境中更易于使用和维护。

广泛应用: 由于其简单性和高度可定制性,Cron在UNIX、Linux等操作系统以及其他类UNIX系统中广泛应用。同时,许多其他系统和工具也采用了Cron的概念,提供类似的定时任务调度功能。

Cron 表达式 语法

Cron 表达式的语法包括五个时间字段,用空格分隔。这五个字段分别表示分钟、小时、天、月、星期。每个字段都可以包含单个数字、一系列数字、通配符 * 或者通过逗号 , 分隔的数字列表。以下是 Cron 表达式的基本语法

* * * * *
| | | | |
| | | | +-- 星期几 (0 - 7) (星期天可以用0或7表示)
| | | +---- 月份 (1 - 12)
| | +------ 天 (1 - 31)
| +-------- 小时 (0 - 23)
+---------- 分钟 (0 - 59)

通配符 * 表示每次都匹配

每分钟触发一次:

* * * * *

每小时的30分钟触发一次:

30 * * * *

每天的午夜触发一次:

0 0 * * *

每周的星期一的午夜(0点0分)触发一次:

0 0 * * 1

每月的第1天的午夜(0点0分)触发一次:

0 0 1 * *

每隔2小时触发一次:

0 */2 * * *

分配负载

在Jenkins的Cron表达式中,H 表示“Hashed值”。这是一个特殊的标记,用于在定期执行的任务中尽量均匀地分配负载,避免在特定时间点触发大量任务造成系统负载过重的情况。

举例来说,如果你有多个任务需要在同一时间点执行,使用 H 符号可以让这些任务尽量分散到不同的时间点执行,而不是同时触发,从而降低了系统在某个特定时刻的负载压力。

每分钟触发一次:

H * * * *

每小时的30分钟触发一次:

H 30 * * *

每天的午夜触发一次:

H 0 * * *

每周的星期一的午夜(0点0分)触发一次:

H 0 * * 1

每月的第1天的午夜(0点0分)触发一次:

H 0 1 * *

每隔2小时触发一次:

H */2 * * *
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。