UNIX cron 格式

UNIX cron 格式用于在 ADMIN_TASK_ADD 和 ADMIN_TASK_UPDATE 过程的 schedule 参数中指定时间。

cron 格式具有至少一个空格分隔的五个时间和日期字段。 字段值中不能有空白。 当 minutehourmonth of year 字段与当前时间和日期匹配,并且至少有一个两天字段 (day of monthday of week) 与当前日期匹配时,将执行预定任务。

表 1 以 cron 格式列出时间和日期字段及其允许的值。
表 1. UNIX cron 格式的字段名称和值
字段名称 允许的值
Minute 0-59
Hour 0-23
几号 1-31
Month
  • 1-12,其中 1 是一月, 2 是二月,依此类推。
  • 大写,小写和混合大小写的三个字符字符串,基于月份的英文名称。 例如: janfebmaraprmayjunjulaugsepoctnovdec
星期几
  • 0-7,其中 07 是星期日, 1 是星期一,依此类推。
  • 大写,小写或混合大小写的三个字符串,基于当天的英文名称: montue新华thufrisatsun

范围和列表

允许数字范围。 范围是两个用连字符分隔的数字。 指定的范围包括在内。 例如,小时条目的范围 8-11 指定在小时 8 , 9 , 10 和 11 执行。

允许列表。 列表是一组用逗号分隔的数字或范围。 例如:
1,2,5,9
0-4,8-12

不受限制的范围

字段可以包含星号 (*) ,表示字段中的所有可能值。

命令的执行日期可由两个字段指定: day of monthday of week。 如果这两个字段都受到使用星号以外的值的限制,那么当任一字段都与当前时间匹配时,将运行该命令。 例如,值 30 4 1,15 * 5 将导致命令在每月的 1st 和 15th 凌晨 4:30 以及每个星期五运行。

步骤值

步骤值可与范围结合使用。 语法 range/step 定义范围和执行时间间隔。

如果指定 first-last/step,那么执行将在 first执行,然后在 step远离 first 的所有连续值执行,直到 last为止。

例如,要每隔一小时指定一次命令执行,请使用 0-23/2。 此表达式等同于值 0,2,4,6,8,10,12,14,16,18,20,22

如果指定 */step,那么将在 步骤 的每个时间间隔内执行不受限制的范围。 例如,作为每隔一小时执行一次的 0-23/2 的替代方法,请使用 */2

示例

表 2 列出了可用于各种调度方案的 ADMIN_TASK_ADD 或 ADMIN_TASK_UPDATE 过程中的 schedule 参数的值。
表 2. 示例任务调度和相应的 schedule 自变量值
期望的任务调度 schedule
每周一下午 2:10 10 14 * * 1
每天午夜 0 0 * * *
每个工作日的午夜 0 0 * * 1-5
1st 和 15th 天的午夜 0 0 1,15 * *
6.32 每年 11 月的 17th, 21st 和 29th 的 PM 加上每年 11 月的每个星期一和星期三 32 18 17,21,29 11 mon,wed