宜搭(YiDA)集成自动化中的“定时触发器”不运行,通常是由 表达式语法错误、时区/时间理解偏差、应用状态异常 或 执行条件未满足 导致的。
请按照以下 5 个核心排查步骤 逐一检查,90% 的问题都能解决:
1. 检查 Cron 表达式语法 (最常见原因)
宜搭的定时触发器使用标准的 Cron 表达式(6 位或 7 位)。如果格式哪怕错一个字符,触发器都会静默失败。
格式标准:
秒 分 时 日 月 周(例如:0 0 12 * * ?表示每天中午 12 点)。常见错误:
位数不对:少写了“秒”或“周”。宜搭通常需要 6 位 (秒 分 时 日 月 周)。
特殊符号误用:
*(每)、?(不指定)、/(间隔)、,(枚举) 用错位置。星期与日期冲突:在“日”和“周”字段中,必须有一个是
?,不能同时指定具体值(除非用L或W等高级写法,但新手容易错)。✅ 正确示例:
每天早上 9:30 执行:
0 30 9 * * ?每周一上午 10:00 执行:
0 0 10 ? * MON(注意:日和周的位置,日填?)每隔 5 分钟执行:
0 */5 * * * ?🔧 解决方法:使用在线 Cron 表达式生成器(搜索 "Cron Generator"),生成后复制粘贴到宜搭,不要手敲。
2. 检查“生效时间”与“时区”
很多时候代码没错,是时间没到,或者时区搞错了。
开始/结束时间:
检查是否设置了 “生效开始时间”?如果设置成了明天,那今天肯定不会跑。
检查是否设置了 “生效结束时间”?如果过期了,也会停止。
建议:测试时,先把开始时间设为 10 分钟前,结束时间设为 1 小时后。
时区问题:
宜搭默认通常使用 北京时间 (UTC+8)。
如果你设置的 cron 是
0 0 2 * * ?(凌晨 2 点),请确认你是想要北京时间的 2 点,还是 UTC 的 2 点(即北京 10 点)。通常宜搭界面显示的是本地时间,但底层逻辑需留意。
3. 检查自动化流的状态与发布
这是最容易被忽视的“低级错误”。
状态是否为“启用”:
进入集成自动化列表,查看该流程右侧的开关。必须是 绿色 (启用) 状态。如果是灰色,点击开启。
是否已“发布”:
关键点:在宜搭中,修改了定时触发器的配置后,必须点击右上角的“发布”按钮!
如果你只是保存了流程图,但没有点“发布”,线上运行的依然是旧版本(或者旧版本里根本没有这个定时器)。
检查方法:查看流程列表中的“版本号”,确认最新修改已经发布上线。
4. 检查“前置条件”或“分支逻辑”
如果触发器启动了,但后续动作没执行,可能是被条件过滤了。
触发器后的第一个节点:
检查定时器后面是否紧跟了一个 “条件分支” (If/Else)?
如果条件写死了(例如:
当前时间 > 2026-12-31),那么现在运行时会直接走“否”的分支,导致你觉得它“没运行”。调试技巧:暂时移除所有条件分支,直接在定时器后接一个“发消息”或“打印日志”节点,看是否能收到消息。
5. 查看“运行日志” (终极诊断)
如果以上都正常,但就是没反应,或者你怀疑它跑了但没成功,必须看日志。
操作路径:
进入 集成&自动化 页面。
找到该流程,点击 “运行日志” (通常在流程名称旁边或详情页顶部)。
筛选时间:选择最近 1 小时。
分析结果:
结论:触发了,但被条件分支拦截了。
结论:定时器没问题,是后面的逻辑(如 API 调用、数据查询)报错了。
原因:权限不足、接口超时、数据格式错误。点击日志详情查看具体的报错信息。
结论:触发器根本没启动。
原因:Cron 表达式错误、未发布、未启用、或时间未到。
情况 A:没有任何日志记录。
情况 B:有日志,显示“触发成功”,但后续节点失败。
情况 C:有日志,显示“跳过”或“条件不满足”。
🚀 快速自救清单 (Checklist)
| 步骤 | 检查点 | 操作 |
|---|---|---|
| 1 | Cron 表达式 | 复制到在线生成器验证,确保是 6 位格式 (秒 分 时 日 月 周)。 |
| 2 | 发布状态 | 确认右上角 “发布” 按钮已点击,且版本号已更新。 |
| 3 | 开关状态 | 确认流程列表中的开关是 绿色 (启用)。 |
| 4 | 生效时间 | 确认开始时间在 过去,结束时间在 未来。 |
| 5 | 运行日志 | 去“运行日志”看有没有记录。没记录=没触发;有记录=查报错。 |
| 6 | 简单测试 | 把时间改为 每分钟执行一次 (0 */1 * * * ?),观察 2 分钟看是否有反应。 |
💡 特别提示
最小间隔限制:部分版本的宜搭对定时触发的最小间隔有限制(例如不能少于 1 分钟或 5 分钟),如果设置
*/10s(每 10 秒) 可能会失效。建议测试时使用 1 分钟 间隔。并发限制:如果上一次任务还没跑完,下一次时间到了,是会排队等待还是跳过?宜搭默认策略通常是 排队 或 跳过(视配置而定)。如果任务耗时超过间隔时间,可能会导致后续堆积或看似“不运行”。
按照上述步骤,特别是 检查 Cron 格式 和 确认已发布,通常能立即解决问题。