[Cron]Cron的语法规则及常用的例子

本文详细介绍了Cron的语法规则,包括每个位的含义,基础符号的使用,以及各个单元的组合方式。通过示例解释了如何设置定时任务,如每30秒执行一次,每天早上5点执行,以及每周三凌晨0点执行等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在软件工程中,常用cron的表达式来规定一个计划执行的时间和规律,比如
30 * * * * * 表示每30s执行一次,本文将讲解cron的语法规则,并给出常用的例子。

1.每个位代表的单元介绍

从左往右代表:

******
月份星期

其中第4位和第6位代表的日期,第四位指按月份来时的天数(day of month),第六位指按星期来算的天数(day of week)。
以下例子指的是每个月的八号或者是星期二执行

0 0 0 8 * 2 

假如今天是2022年的1月2号,那之后五次执行的时间是:

  • 2022-01-04 00:00:00
  • 2022-01-08 00:00:00
  • 2022-01-11 00:00:00
  • 2022-01-18 00:00:00
  • 2022-01-25 00:00:00
    在这里插入图片描述

2.基础的符号介绍

符号意义例子(在秒位上为例)功能
*every,每一个* 代表每一秒每一个点
/分隔符10/15 代表从第10秒开始,每间隔15秒(也就是10s, 25s,50s)分隔符左边表示指定的时间范围或起点,右边的表示时间的间隔
-区间1-6代表第1,2,3,4,5,6秒连续的时间区间
,列表1,7,10代表第1,7,10秒时间点序列
数字指定的一个值20代表第20秒执行的时间点

对于每一位,上面的符号分别能表示执行的时间点,时间点序列,连续的时间区间,指定时间范围内,或者全选,因此可以他们的组合是非常强大的,可以应对几乎所有的时间规律。
有了这些丰富的符号,对于同一个需求,可能会有不同的实现方式,比如对于每个小时执行一次,以下的组合都可以表示:

  • 0 0 0/1 * * * (表示秒=0,分=0,时从0开始每隔1小时就执行)
  • 0 0 */1 * * * (表示秒=0,分=0,时从0开始每隔1小时就执行)
  • 0 0 * * * * (表示秒=0,分=0就执行,也就是每个整点执行一次)
  • 0 */60 * * * * (表示秒=0,分=0开始每隔60分就执行一次)

3.各个单元的组合

每个单元的组合是“而且“的关系,比如30 23 0-5/2 * * * 表示秒=30s,分=23分,0-20小时内每2小时执行一次,如果现在是2022-01-02 21:00,那么接下来的5次执行时分别是:

  • 2022-01-03 00:2:30
  • 2022-01-03 02:23:30
  • 2022-01-03 04:23:30
  • 2022-01-04 00:23:30
  • 2022-01-04 02:23:30

有一个例外:
第六位中如果用?,那么表示将day of week禁用,只想使用day of month来表示,比如0 0 8 * * ?表示每个月8号凌晨0点触发,与星期几无关。
同样的,如果?用在第4位那就代表day of month禁用,指用day of week。0 0 ? * * 3指每周三凌晨0点触发,与几号无关

4.常见的cron例子

每半分钟执行一次:

 30 * * * * *

每天早上五点执行一次

 * * 5 * * *

每周三的凌晨0点执行一次:

 0 0 0 * * 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值