如何使用 openclaw cron 管理排程任務
你是否曾經為了設定自動化任務而搞得焦頭爛額?不管是定時發送報告還是清理資料,管理這些排程任務總是讓人心累,尤其是當你需要確保它們在背景穩定執行,又不想花太多時間去盯著伺服器看的時候。
openclaw cron
Section titled “openclaw cron”openclaw cron 是用來管理 Gateway 排程器的工具。
相關資源:
- Cron jobs: Cron jobs
提示:執行 openclaw cron --help 可以查看完整的指令說明。
注意:獨立的 cron add 任務預設會使用 --announce 傳送。如果你想讓輸出保持在內部,請使用 --no-deliver。--deliver 目前是 --announce 的舊版別名,不建議繼續使用。
注意:單次執行(--at)的任務在成功後預設會自動刪除。如果你想保留它們,請加上 --keep-after-run。
注意:對於單次執行的 CLI 任務,如果 --at 沒有指定偏移量,會被視為 UTC 時間,除非你另外加上 --tz <iana> 來指定特定時區的本地時間。
注意:重複執行的任務現在在連續出錯後會使用指數退避演算法進行重試(30s → 1m → 5m → 15m → 60m),並在下一次成功執行後恢復正常排程。
注意:openclaw cron run 現在在手動執行進入佇列後會立即回傳。成功的請求會包含 { ok: true, enqueued: true, runId };你可以使用 openclaw cron runs --id <job-id> 來追蹤後續的執行結果。
注意:保留與清理機制可以在設定檔中控制:
cron.sessionRetention(預設24h)會清理已完成的獨立執行工作階段。cron.runLog.maxBytes+cron.runLog.keepLines會清理~/.openclaw/cron/runs/<jobId>.jsonl。
升級說明:如果你有舊版的 cron 任務(在目前的傳送/儲存格式更新前建立的),請執行 openclaw doctor --fix。Doctor 現在會標準化舊版的 cron 欄位(jobId, schedule.cron, 頂層傳送欄位包括舊版的 threadId, payload provider 傳送別名),並在設定了 cron.webhook 的情況下,將簡單的 notify: true webhook 任務遷移到明確的 webhook 傳送模式。
在不更改訊息內容的情況下更新傳送設定:
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"停用獨立任務的傳送功能:
openclaw cron edit <job-id> --no-deliver為獨立任務啟用輕量級 bootstrap context:
openclaw cron edit <job-id> --light-context傳送到特定的 channel:
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"建立一個帶有輕量級 bootstrap context 的獨立任務:
openclaw cron add \ --name "Lightweight morning brief" \ --cron "0 7 * * *" \ --session isolated \ --message "Summarize overnight updates." \ --light-context \ --no-deliver--light-context 僅適用於獨立的 agent-turn 任務。對於 cron 執行,輕量模式會讓 bootstrap context 保持空白,而不是注入完整的 workspace bootstrap 集合。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。