cron: airflow 运行周期设置 schedule_interval

cron 

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>

cron expression

FieldRequiredAllowed valuesAllowed special charactersRemarks
MinutesYes0–59* , - 
HoursYes0–23* , - 
Day of monthYes1–31* , - ? L W? L W only in some implementations
MonthYes1–12 or JAN–DEC* , - 
Day of weekYes0–6 or SUN–SAT* , - ? L #? L # only in some implementations
YearNo1970–2099* , -This field is not supported in standard/default implementations.

 

 

 

 

 

 

 

逗号(,

逗号用于分隔列表中的项目。例如,在第五个字段(星期几)中使用“ MON,WED,FRI”表示星期一,星期三和星期五。

破折号(-

破折号定义范围。例如,2000–2010表示2000年至2010年(含)之间的每一年。

百分比(%

除非使用反斜杠(\)进行转义,否则命令中的百分号(%)会更改为换行符,并且将第一个%之后的所有数据作为标准输入发送至命令。

非标准字符

以下是非标准字符,仅在某些cron实现中存在,例如Quartz Java Scheduler

L

“ L”代表“最后”。在“星期几”字段中使用时,它允许指定给定月份的结构,例如“最后一个星期五”(“ 5L ”)。在“每月的日期”字段中,它指定该月的最后一天。

W

“月”字段中允许使用“ W”字符。此字符用于指定最接近给定日期的工作日(星期一至星期五)。例如,如果将“ 15W ”指定为“月日”字段的值,则含义是:“离该月15日最近的工作日”。因此,如果15号是星期六,那么触发器将在14号星期五触发。如果15日是星期日,则触发器将在16日星期一触发。如果15号是星期二,那么它将在15号星期二触发。但是,如果将“ 1W”指定为月份的值,而第1个是星期六,则触发器将在第3个星期一触发,因为它不会“跳过”一个月日的边界。仅当月份中的某天是一天而不是范围或天数列表时,才可以指定“ W”字符。

哈希(#

星期几字段中允许使用“#”,并且必须在其后跟一个介于1到5之间的数字。它允许指定结构,例如给定月份的“第二个星期五”。例如,在“星期几”字段中输入“ 5#3”对应于每月的第三个星期五。

问号(?

在某些实现中,使用“ * ”代替“ * ”来保留月日或星期几为空。其他cron实现替代“?” cron守护程序的启动时间,因此它将更新为cron在上午8:25启动,并且每天每天该时间运行一次,直到再次重新启动为止。? ? * * * *25 8 * * * *

斜线(/

在vixie-cron中,可以将斜线与范围组合以指定步长值。例如,分钟字段中的* / 5表示每5分钟一次(有关频率,请参见下面的注释)。它是更详细的POSIX格式的缩写,形式为5,10,15,20,25,30,35,40,45,50,55,00。POSIX没有定义斜杠的用法;它的基本原理(在BSD扩展上做注释)指出该定义基于System V格式,但不排除扩展的可能性。

请注意,通常无法表达频率;只有平均分配其范围的步长值才能表示准确的频率(对于分钟和秒,分别为/ 2,/ 3,/ 4,/ 5,/ 6,/ 10,/ 12,/ 15,/ 20和/ 30, 因为60为被这些数字整除的数小时;分别是/ 2,/ 3,/ 4,/ 6,/ 8和/ 12); 所有其他可能的“步骤”和所有其他字段在“重置”至下一分钟,第二天或一天之前,在时间单位末尾产生不一致的“短”时间段;例如,根据月份和leap年的不同,在天字段中输入* / 5有时会在1天,2天或3天之后执行;这是因为cron是无状态的(它不记得上一次执行的时间,也不计算精确频率计数所需要的时间与现在之间的差,而cron仅仅是模式匹配器)。

H

詹金斯(Jenkins)连续积分系统中使用“ H”表示替换为“哈希”值。因此,代替表示诸如“ 20 * * * *”的固定数字(表示在每小时的每小时之后20分钟),“ H * * * *”表示每小时在每个任务的未指定但不变的时间执行任务。这允许随着时间的推移分散任务,而不是让所有任务同时开始并争夺资源。

 

示例

  • 每天00:45

 schedule_interval='45 00 * * *'

  • 每天08:01,09:01,10:01 到 22:01

schedule_interval='01 08-22/1 * * *'

  • 每个周六的23:45

schedule_interval='45 23 * * 6'

  • 每天01:00, 01:05, 01:10, 直到 03:55

schedule_interval='*/5 1,2,3 * * *'

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值