Cron表达式的生成规则-个人理解

本文详细介绍了Cron表达式的生成规则,包括如何定义每个位置的含义、如何使用通配符,以及如何设置任务在特定时间间隔、固定时间点或时间段内执行。适合初学者快速掌握Cron表达式的使用。

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

一、明确每个位置代表的含义:
从左至右,依次表示:
   秒   分   时   日   月   周    年
通配符一般使用‘*’,也可使用‘_’或者‘/’,周的位置一般用‘?’


二、生成规则:
2.1、从x时间开始,每隔y时间执行一次,则在对应的位置上写上:x/y;
例:

  • 从0分钟开始,每5分钟执行一次,表达式为:0 0/5 * * * ? *

  • 从上午10点开始,每3个小时执行一次,表达式为:0 0 10/3 * * ? *


2.2、定点执行,在对应的位置上写上对应的数值即可。
例:

  • 每天5点定时执行一次,表达式为:0 0 5 * * ? *
  • 在每个小时的25分执行一次,表达式为:0 25 * * * ? *

2.3、从x时间到y时间段执行,在对应的位置上写上:x-y。
例:

  • 每天上午11点到下午2点执行,表达式为:0 0 11-14 * * ? *

  • 每个小时的15分到30分执行,表达式为:0 15-30 * * * ? *


2.4、指定时间点执行。
这种情况很简单,只需要在对应的位置写上你要执行时间的时间点,用英文逗号(,)分割开就可以了,这里不再举例说明了。


可根据实际情况进行组合。
例:

  • 每天上午11点15-11点45分执行,表达式为:0 15-45 11 * * ? *

  • 每天上午10点到下午3点,从15分中开始,每30分钟执行一次,表达式为:0 15/30 10-15 * * ? *


注:
1、在没有指定的位置上,前面的位置以0代替,后面的位置以通配符代替。
反例:从15分开始,每30分钟执行一次。 * 15/30 * * * ? *
此时因为秒的位置是通配符,会理解为任意秒都可以执行,与预期的不符合。


2、针对生成规则2.1,执行的时间是以后面的为基准的。
例: * 15/25 10-23 * * ? *
当前时间假设为16:20,则前5次的执行时间为:
16:40:00
17:15:00
17:40:00
18:15:00
18:40:00
表达式的含义为:每天10点到23点,从每点的15分开始,每25分钟执行一次。
因为当前时间为16:20,所以第一次执行时间会从16点15分开始算起,由于已经过了16:15,所以往后推算25分钟,是16:40,所以,第一次执行时间是16:40。
有人可能会以为第二次执行的时间会是17:05。这样算是不对的。因为16:40往后推算25分钟超过了17点,所以下一次的应该是以17点算起,从17点15开始执行第二次。依次类推。这就是“以后面的为基准”的意思。

以上内容仅代表个人理解,如有不对,可在评论区指出,共同进步!


个人整理了一份PDF文档,如果感觉不错的话,可以下载下来支持一下!
Cron表达式生成规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值