定时触发器¶
Note: ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
简介¶
Info:
- 触发器仅适用于工作流应用。
- 每个工作流最多只能有一个定时触发器。
定时触发器能够让工作流在指定的时间自动运行,适用于执行周期性重复任务,如生成每日报告或发送定时通知。
添加定时触发器¶
在工作流画布上,单击右键并选择 添加节点 > 开始 > 定时触发器。
配置定时触发器¶
你可以使用默认的可视化配置或 Cron 表达式来配置工作流的运行计划。
完成配置后,你将看到接下来 5 次的计划运行时间。
Info:
定时触发器不产生任何输出变量。但每当其触发工作流时,都会更新系统变量 `sys.timestamp`(每次工作流运行的开始时间)。
使用可视化配置¶
适用于简单的时度、日度、周度或月度运行计划。对于周度或月度计划,可同时选择多天。
使用 Cron 表达式¶
适用于更复杂和精确的运行计划,例如在工作日的上午 9 点到下午 5 点之间每 15 分钟运行一次。
Tip:
你可以使用 LLM 来生成 Cron 表达式。
标准格式¶
Cron 表达式是一段可用于定义工作流运行计划的字符串,由五个用空格分隔的字段组成,每个字段代表不同的时间单位。
Note:
确保每个字段之间有一个空格。
* * * * *
| | | | |
| | | | |── 星期几(0-7 或 SUN-SAT, 0 和 7 均表示星期日)
| | | |──── 月份(1-12 或 JAN-DEC)
| | |────── 日(1-31)
| |──────── 小时(0-23)
|────────── 分钟(0-59)
Info:
当同时为 **日** 和 **星期几** 字段指定值时,触发器将在匹配 *任一* 字段的日期运行。
例如,`1 2 3 4 4` 会在 4 月 3 日 *以及* 4 月的每个星期四触发工作流,而不仅仅是在 4 月 3 号当天刚好是星期四时触发。
特殊字符¶
| 字符 | 描述 | 示例 |
|---|---|---|
* |
表示「每个」。 | 小时 字段中的 * 表示「每个小时」。 |
, |
分隔多个值。 | 星期几 字段中的 1,3,5 表示「星期一、星期三和星期五」。 |
- |
定义值的范围。 | 小时 字段中的 9-17 表示「上午 9 点到下午 5 点」。 |
/ |
指定步进值。 | 分钟 字段中的 */15 表示「每 15 分钟」。 |
L |
表示「最后」。 在 日 字段中,表示「月的最后一天」。 在 星期几 字段中:
|
日 字段中的 L 表示「1 月 31 日、4 月 30 日,或非闰年的 2 月 28 日」。星期几 字段中的 L 表示「星期日」。星期几 字段中的 5L 表示「月的最后一个星期五」。 |
? |
表示「任意」或「无特定值」。 如果你为 星期几 字段指定了值,可以用 ? 来忽略 日 字段,反之亦然。非必需,因为 * 也可实现相同效果。 |
若要在每个星期一运行,将 日 字段设为 ? 会比设为 * 更精确。 |
预定义表达式¶
@yearly:每年一次,在 1 月 1 日的凌晨 12 点运行。@monthly:每月一次,在每月第一天的凌晨 12 点运行。@weekly:每周一次,在星期日的凌晨 12 点运行。@daily:每天一次,在凌晨 12 点运行。@hourly:在每小时开始时运行。
示例¶
| 运行时间 | Cron 表达式 |
|---|---|
| 工作日上午 9 点 | 0 9 * * MON-FRI or 0 9 * * 1-5 |
| 每周三下午 2:30 | 30 14 * * WED |
| 每周日凌晨 12 点 | 0 0 * * 0 |
| 每周二每 2 小时一次 | 0 */2 * * 2 |
| 每月第一天凌晨 12 点 | 0 0 1 * * |
| 1 月 1 日和 6 月 1 日的中午 12 点 | 0 12 1 JAN,JUN * |
| 每月最后一天下午 5 点 | 0 17 L * * |
| 每月最后一个星期五晚上 10 点 | 0 22 * * 5L |
测试定时触发器¶
-
运行此步骤:定时触发器会忽略已配置的计划,立即运行。
-
测试运行:定时触发器会等待其下一个计划运行时间。