Skip to main content

cron 计划语法参考资料

本节介绍使用 Alteryx One Platform 中的 cron 定义计划执行的语法。通常,此方法用于重复计划。

注意

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

cron 概述

Alteryx One 允许您使用 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 表达式

注意

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

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

表达式无效

有效表达式

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

cron 表达式无效

表达式

含义

原因

15 10 * * * 2001

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

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

* * *

-

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