from: https://www.jenkins.io/doc/book/pipeline/syntax/#cron-syntax
以下内容为根据Jenkins官方文档cron表达式部分翻译过来,使用机翻加个人理解补充内容,包括举例。
目录
介绍
Jenkins cron 语法遵循 cron 实用程序的语法(有细微差别)。具体来说,每行由 5 个由 TAB 或空格分隔的字段组成:

分钟 小时 日 月 一周中的第几日
要为一个字段指定多个值,可以使用以下运算符。按照优先顺序,
*指定所有有效值
M-N 指定一个值范围
M-N/X或 */X 以 X 为间隔步进通过指定范围或整个有效范围
A,B,...,Z 枚举多个值
H 表示有效值范围内任意一个时间点
为了允许定期调度的任务在系统上产生均匀的负载,应尽可能使用符号 H(“哈希”)。例如,对十几个日常Job使用 0 0 * * * 将导致午夜出现大幅峰值。相比之下,使用 H H * * * 仍会每天执行每个Job一次,但不是同时执行所有Job,更好地利用有限的资源。
H 符号可以与范围一起使用。例如,H H(0-7) * * * 表示 12:00 AM(午夜)到 7:59 AM 之间的某个时间。您还可以将步长间隔与H一起使用,带或不带范围。
H 符号可以被认为是一定范围内的随机值,但它实际上是Job名称的哈希值,而不是随机函数,因此该值对于任何给定项目都保持稳定。
请注意,对于月份字段,由于月份长度可变,*/3 或 H/3 等短周期在大多数月末附近不会一致工作。例如,*/3 将在长月的第 1 天、第 4 天、…第 31 天运行,然后在下个月的第二天运行。哈希值始终选择在 1-28 范围内,因此 H/3 将在月底的运行之间产生 3 到 6 天的间隙。较长的周期也会有不一致的长度,但效果可能相对不太明显。
空行和以 # 开头的行将作为注释被忽略。 此外,还支持@yearly、@annually、@monthly、@weekly、@daily、@midnight 和@hourly 作为方便的别名。它们使用哈希系统进行自动平衡。例如,@hourly 与 H * * * * 相同,可以表示一小时内的任何时间。 @midnight 实际上是指 12:00 AM 到 2:59 AM 之间的某个时间。

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



