Cron not firing
像闹钟本身没响。先查 cron.enabled、nextWakeAt、job 是否 due。
Automation 导读
自动小闹钟 troubleshooting 讲的不是“自动”两个字有多神,而是它什么时候会自己醒来、醒来后会留下什么脚印、又和 cron、heartbeat、tasks 这些近亲怎么分工。原文最响的一记鼓点,其实是:This page moved to Scheduled Tasks. See Scheduled Tasks for troubleshooting documentati…。
先讲这一页到底在解决什么
自动小闹钟 troubleshooting 讲的不是“自动”两个字有多神,而是它什么时候会自己醒来、醒来后会留下什么脚印、又和 cron、heartbeat、tasks 这些近亲怎么分工。原文最响的一记鼓点,其实是:This page moved to Scheduled Tasks. See Scheduled Tasks for troubleshooting documentati…。
第一步
官方第一组命令就是“先摸脉,再听诊”。
openclaw status像先看整个人是不是还站着。
openclaw gateway status像再看心脏是不是在跳。
openclaw logs --follow像把听诊器贴上去,听它现在到底在咳什么。
openclaw doctor像请总医生做系统性体检。
Cron 问题
这页最有价值的地方,就是帮你把这两种病拆开看。
像闹钟本身没响。先查 cron.enabled、nextWakeAt、job 是否 due。
像闹钟响了,老师也干活了,但邮差没把结果送出去。
前者先看调度器,后者先看 delivery mode、channel、to、通道连通状态。
先分清是“没跑”还是“跑了没送”。
Heartbeat 问题
这页把很多看似奇怪的 skip reason 翻得很清楚。
quiet-hours像巡逻员看了值班时间表,发现现在本来就不该巡。
requests-in-flight像主车道正忙,巡逻员先在边上等一下。
empty-heartbeat-file像巡逻清单上根本没写要做什么,自然不会硬跑一趟。
alerts-disabled像巡逻其实做了,只是你把对外播报喇叭关掉了。
时区问题
官方最后一段特别重要,因为自动化最爱在这里悄悄出错。
Cron 没写 --tz 时,默认跟主机走;heartbeat 的 activeHours 又可能跟 userTimezone 或显式 IANA 时区走。所以“看起来差不多”的时间,其实可能根本不是一块表。
最后总结
排自动化故障时,先按体检顺序看状态和日志,再分清是“没跑”、“跑了没送”,还是“时区和 quiet hours 让它本来就不该跑”。