Skip to main content

cron 计划语法参考资料

本节介绍使用 Alteryx Analytics Cloud (AAC) 中的 cron 定义计划执行的语法。通常,此方法用于重复计划。

注意

在指定 cron 计划的 AAC 页面上定义的时区设置将与计划一起使用。要使用 UTC 时区,请在下拉列表中选择 UTC

cron 概述

AAC 允许您使用 cron(一种广泛使用的语法)来指定定期重复出现的时间。您可以使用 cron 按分钟或年,以及两者之间的任意间隔指定计划。

cron 语法

计划的 cron 作业定义为以空格分隔的值字符串。以下 cron 示例定义了要在 2 月 1 日晚上 11:30:00 触发的计划:

分钟

小时

日期

月份

星期

30

23

1

2

*

当所有值匹配时,将触发 cron 作业。

注意

不支持指定秒数。

通配符:

在上述 cron 表达式中,通配符 * 可用于匹配任何接受的值,这表示 cron 值类型不是确定此计划的因素。由于通配符应用于“星期”值,因此可以在一周的任何一天触发计划。

注意

您必须在“星期”或“日期”字段中使用 * 字符。不支持在同一个 con 表达式中指定两个字段。

图例:

除最后一个字段(年份)外,所有字段都是 cron 表达式中的必填字段。下表描述了特殊字符。

类型

描述

支持的特殊字符

30

分钟

0-59

, - * /

23

小时

0-23

, - * /

1

日期

1-31

, - * / L W

2

月份

1-12

, - * /

*

星期

0 - 6 或周日至周六

0、Sun,SUN =周日

1、Mon,MON =周一

...

6、Sat,SAT =周六

, - * / L #

*

年份

(可选)您可以根据需要指定年份设置。默认为 *。

, - * /

特殊字符

您可以在 cron 表达式中使用以下特殊字符。

字符

描述

*

“所有值” )- 匹配字段中所有可能值的通配符。例如,如果您希望触发器在晚上 10 点的每分钟触发,则表达式中的分钟字符为 * 。下面举例说明。

-

指定值范围。例如,您可以在“星期”字段中使用 1-5 来匹配一周的工作日(周一至周五)。下面举例说明。

,

指定一组离散值。例如,在“日期”字段输入 1,10,20,30 ,就会在每月的 1、10、20 和 30 日(如果可能)触发。

/

以字段的单位指定字段的增量。例如,“分钟”字段中的 5/20 与每小时的第 5 分钟、第 25 分钟和第 45 分钟匹配。

L

在以下字段中接受该范围内的最后一个值:

  • 日期:指定当前所选月份值的最后一天。

    • 在 1 月份,此值与 31 匹配。

    • 在 2 月份,此值与非闰年的 28 匹配。

    • 在 4 月份,此值与 30 匹配。

  • 星期:

    • 其本身指定一周的最后一天,与 6 (周六)匹配。

    • 如果与其他值一起使用,其指定月份的最后一个匹配值。例如, 3L 是该月的最后一个周三。

W

指定最近的匹配工作日。例如,如果在“日期”字段中输入 22W ,则会匹配距该月 22 日最近的工作日。如果 22 日是周六,则 cron 作业会在 24 日(下个周一)匹配。

提示

LW 可在“日期”字段中用于匹配该月的最后一个工作日。

#

指定每月的第 n 天。“星期”字段的示例:

  • 3#4 - 该月的第四个周二

  • 5#2 - 该月的第二个周四

示例

下面是一些 cron 计划示例。

每小时

每小时第 15 分钟运行:

15 * * * *

每天

每天晚上 10 点运行:

0 22 * * *

每天晚上 10 点每分钟均运行:

* 22 * * *

每周

每周二凌晨 3 点运行:

0 3 * * 2

工作日

每个工作日晚上 8 点运行:

0 20 * * 1-5

请注意,上述计划在周一晚上 8 点和每周每晚 8 点运行。

对于每个工作日的上午,您可以选择在周日开始安排计划,其中星期值从 0 开始,以 4 结束。

每月

每月第一天凌晨 2:30 运行:

30 2 1 * *

在距每月 25 日最近的工作日 (W) 下午 3:30 运行:

30 15 25W * *
  • 如果 25 日是周六,则在 24 日周五触发上述操作。

  • 如果 25 日是周日,则在 26 日周一触发上述操作。

每年

每年 1 月 1 日午夜运行:

0 0 1 1 * *

其他示例

表达式

含义

0 12 * * *

每日中午 12 点触发

15 10 * * *

每日上午 10:15 触发

15 10 * * *

每日上午 10:15 触发

15 10 * * * *

每日上午 10:15 触发

15 10 * * * 2017

2017 年的每天上午 10:15 触发

* 14 * * *

每天下午 2 点至下午 2:59,每分钟触发一次

0/5 14 * * *

每天下午 2 点至下午 2:55,每 5 分钟触发一次

0/5 14,18 * * *

每天下午 2 点至下午 2:55,每 5 分钟触发一次,同时下午 6 点至下午 6:55,每 5 分钟触发一次

0-5 14 * * *

每天下午 2 点至下午 2:05,每分钟触发一次

10,44 14 * 3 WED

3 月份的每周三下午 2:10 和 2:44 触发。

15 10 * * MON-FRI

每周一、周二、周三、周四和周五上午 10:15 触发

15 10 15 * *

每月 15 日上午 10:15 触发

15 10 L * *

每月最后一天上午 10:15 触发

15 10 L-2 * *

每月倒数第二天上午 10:15 触发

15 10 * * 5L

每月最后一个周五上午 10:15 触发

15 10 * * 5L 2017-2019

2017 年、2018 年和 2019 年,每月最后一个周五上午 10:15 触发

15 10 * * 5#3

每月第三个周五上午 10:15 触发

0 12 1/5 * *

每月从第一天开始,每 5 天在中午 12 点触发。

11 11 11 11 *

每年 11 月 11 日上午 11 点触发。

不支持的 cron 表达式

注意

AAC 不支持在同一表达式中混合使用 / - 特殊字符。

您可以引用所有可能的选项,而不是在 cron 语法中表示范围。

表达式无效

有效表达式

0 23 * 1-11/2 * *
0 23 * 2,4,6,8,10 * *

cron 表达式无效

表达式

含义

原因

15 10 * * * 2001

2001 年的每天上午 10:15 触发

此 cron 表达式无效,因为其将来不会生成任何事件。

* * *

-

cron 表达式应包含 6 或 7 个字段。