← 返回文章列表

Dify 定时触发(trigger-schedule)实测:工作流到点自动跑,和三个必须知道的坑

📖 摘要:日报自动生成、看板定时刷新、巡检定时告警——这些「到点自动跑」的需求,Dify 用 trigger-schedule 节点实现:它是工作流的「闹钟」入口(替代开始节点),发布后按配置的时间自动启动工作流。本文实测验证了真实定时触发(cron 每分钟连续运行全部成功)、时区行为、失败处理——以及三个交付前必须知道的坑:定时任务失败是静默的、首次发布可能不生效、时间格式只认 12 小时制。

1. 业务场景:工作流需要一个「闹钟」

给客户做数据看板、日报系统时,最常听到的需求是:

每天早上 9 点自动生成昨天的销售日报;每周一自动刷新周报看板;每个整点自动巡检一次服务状态。

人工触发不现实——凌晨的日报没人守着点按钮。工作流需要的是一个「闹钟」:到点自动启动,跑完自动结束,结果落库。

2. 方案:trigger-schedule 节点

Dify 的定时触发是一个入口节点(trigger-schedule,替代 start 作为工作流起点):

3. 整体架构

graph TD A["定时计划(cron 表达式 + 时区)"] --> B["调度器每分钟轮询"] B -->|"到点"| C["自动启动工作流运行"] C --> D["执行节点链"] D --> E["结果落库 / 输出"] B -->|"未到点"| B

发布后:计划写入数据库(含下一次运行时间 next_run_at)→ 调度器轮询发现到期 → 启动运行 → 运行完成后自动推进到下一周期。

4. 实测验证(真实定时触发)

实验载体:最小定时工作流(trigger-schedule cron */1 * * * * 每分钟 → LLM 生成一句话 → 结束),时区 Asia/Shanghai,云端 Dify 1.16.1 实测。

结果:连续 4 分钟每分钟自动运行,全部成功,输出正常:

触发时间(UTC) 运行状态 耗时 输出
07:00:52 ✅ succeeded 1.5s 定时任务运行成功…
07:01:52 ✅ succeeded 0.8s 定时任务运行成功…
07:02:52 ✅ succeeded 1.3s 定时任务运行成功…
07:03:52 ✅ succeeded 1.1s 定时任务运行成功…

5. 关键配置(DSL 结构)

data:

  type: trigger-schedule      # 入口节点(替代 start)

  title: 定时触发器

  mode: cron                  # visual | cron

  cron_expression: "*/1 * * * *"   # cron 模式:标准 5 段

  timezone: Asia/Shanghai     # 时区——⚠️ 默认 UTC,国内必须显式设置

  desc: 工作流的闹钟

visual 模式(每天 9:00 触发):

mode: visual

frequency: daily

visual_config:

  time: "9:00 AM"             # ⚠️ 12 小时制,不支持 "09:00"

timezone: Asia/Shanghai

发布流程(⚠️ 两个关键点)

  1. 定时计划在发布时写入——首次发布可能不生效(实测第一次发布后计划表为空,重新发布一次才注册成功)——发布后务必验证

  2. 发布后 1-2 个周期内观察首轮触发(cron 分钟级验证最快)

6. 实测坑(三个必须知道)

# 实测证据 对策
1 定时任务失败是静默的 LLM 模型故意配错:触发照常发生 → 运行失败 → 无运行记录、无触发日志,只有调度器日志里一行 ERROR;下一分钟继续触发(无退避/熔断) 交付必须设计失败可见性:工作流内部用异常分支 + 通知(webhook/消息);或外部监控调度器日志/定期核对结果
2 首次发布可能不生成定时计划 第一次发布后数据库计划表为空,重新发布才写入 发布两次兜底;发布后查计划确认
3 时间格式只认 12 小时制 visual 模式填 "14:30"(24 小时制)报错「Expected HH:MM AM/PM」,小时必须 1-12 time 用 "2:30 PM" 格式;或直接用 cron 模式(无此限制)

另外两个容易踩的:

7. 总结

定时触发把「到点自动跑」做成了平台原生能力:cron/visual 双模式、时区支持、周期自动推进,真实触发实测通过。但坑 1(失败静默)是交付红线——定时任务没有人工盯着,失败不可见等于「任务悄悄没跑」,方案里必须设计失败告警。

适合的场景:日报/周报自动生成、数据看板定时刷新、定时巡检与告警、定时拉取外部数据。不适合:对「必须跑成功」有硬性要求的任务(先解决失败可见性再说)。


本文为 Dify 功能实测记录,基于 2026-08 云端 1.16.1 环境,实验数据全部来自真实运行结果。

联系我

15088711270

手机端点击号码可直接拨打 · 桌面端可复制

微信二维码

扫码加微信 · 备注「门户」更快通过