Files
dify-docs/zh/use-dify/nodes/trigger/schedule-trigger.mdx
github-actions[bot] 6ecbc4153f 🌐 Initial translations for PR #654 (#655)
Auto-generated translations for documentation changes in PR #654.

Last-Processed-Commit: 63f964a0074f467f781dfb80ac00dba830626a68
Original-PR: #654
Languages: Chinese (zh), Japanese (ja)

🤖 Generated with GitHub Actions

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 12:46:58 +08:00

105 lines
4.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 定时触发器
---
<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/nodes/trigger/schedule-trigger)。</Note>
## 简介
<Info>
触发器仅适用于工作流应用。
</Info>
定时触发器能够让工作流在指定的时间自动运行,适用于执行周期性重复任务,如生成每日报告或发送定时通知。
## 添加定时触发器
在工作流画布上,单击右键并选择 **添加节点** > **开始** > **定时触发器**。
<Tip>
一个工作流可同时拥有多个并行的定时触发器。当并行的分支包含相同的连续节点时,可在相同部分之前添加[变量聚合器](/zh/use-dify/nodes/variable-aggregator)节点以合并分支,而无需在每个分支中分别重复添加相同的节点。
</Tip>
## 配置定时触发器
你可以使用默认的可视化配置或 Cron 表达式来配置工作流的运行计划。
完成配置后,你将看到接下来 5 次的计划运行时间。
<Info>
定时触发器不产生任何输出变量。但每当其触发工作流时,都会更新系统变量 `sys.timestamp`(每次工作流运行的开始时间)。
</Info>
### 使用可视化配置
适用于简单的时度、日度、周度或月度运行计划。对于周度或月度计划,可同时选择多天。
### 使用 Cron 表达式
适用于更复杂和精确的运行计划,例如在工作日的上午 9 点到下午 5 点之间每 15 分钟运行一次。
<Tip>
你可以使用 LLM 来生成 Cron 表达式。
</Tip>
#### 标准格式
Cron 表达式是一段可用于定义工作流运行计划的字符串,由五个用空格分隔的字段组成,每个字段代表不同的时间单位。
<Note>
确保每个字段之间有一个空格。
</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 号当天刚好是星期四时触发。
</Info>
#### 特殊字符
| 字符 | 描述 | 示例 |
|:-----------|:-------------|:---------|
| `*` | 表示「每个」。 | **小时** 字段中的 `*` 表示「每个小时」。 |
| `,` | 分隔多个值。 | **星期几** 字段中的 `1,3,5` 表示「星期一、星期三和星期五」。 |
| `-` | 定义值的范围。 | **小时** 字段中的 `9-17` 表示「上午 9 点到下午 5 点」。 |
| `/` | 指定步进值。 | **分钟** 字段中的 `*/15` 表示「每 15 分钟」。 |
| `L` | 表示「最后」。 <br /><br />在 **日** 字段中,表示「月的最后一天」。<br /><br />在 **星期几** 字段中:<ul><li>单独使用时,表示「周的最后一天」。</li><li>与数字组合使用时,表示「月的最后一个指定的星期几」。</li></ul>| **日** 字段中的 `L` 表示「1 月 31 日、4 月 30 日,或非闰年的 2 月 28 日」。<br /><br />**星期几** 字段中的 `L` 表示「星期日」。<br /><br />**星期几** 字段中的 `5L` 表示「月的最后一个星期五」。 |
| `?` | 表示「任意」或「无特定值」。<br /><br />如果你为 **星期几** 字段指定了值,可以用 `?` 来忽略 **日** 字段,反之亦然。<br /><br />非必需,因为 `*` 也可实现相同效果。 | 若要在每个星期一运行,将 **日** 字段设为 `?` 会比设为 `*` 更精确。|
#### 预定义表达式
- `@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` |
## 测试定时触发器
- **运行此步骤**:定时触发器会忽略已配置的计划,立即运行。
- **测试运行**:定时触发器会等待其下一个计划运行时间。