OpenClaw 定時任務系統 Cron Jobs 與 Heartbeat 概念圖
行銷知識 2026.05.16

OpenClaw 進階排程教學:Cron Jobs 與 Heartbeat 完整設定

真實經驗分享:我是個數據分析師,每天需要執行大量定時任務——早上 8 點抓取競品價格、中午 12 點生成銷售報表、下午 5 點備份資料庫、每週一發送團隊週報。以前用 crontab 管理,但常因伺服器重啟導致任務中斷,或某個腳本出錯了沒人知道。用 OpenClaw 的 Cron Jobs 與 Heartbeat 機制後,所有排程任務穩定運作,出錯時即時通知,我終於可以安心睡覺。

在自動化領域,「定時執行」與「健康監測」是兩個基礎但至關重要的能力。傳統的 cron job 雖然強大,但缺乏現代化監控、錯誤通知、與動態調整能力。OpenClaw 的 Cron Jobs 與 Heartbeat 系統,將傳統排程升級為「智能自動化引擎」。本文將完整解析這兩個系統的設定方法與進階應用。

Cron Jobs 自動化排程工作流程概念圖

Cron Jobs:精準定時的自動化執行

Cron Jobs 是 Linux/Unix 系統中歷史悠久的定時任務機制。OpenClaw 不僅完整支援標準 Cron 語法,還加入了現代化的管理介面與錯誤處理能力。

Cron 語法快速參考

欄位 含義 範例
分鐘 0-59 0 = 整點
小時 0-23 9 = 上午 9 點
日期 1-31 * = 每天
月份 1-12 * = 每月
星期 0-7(0 與 7 都是週日) 1-5 = 週一到週五

常見範例:

  • 0 9 * * 1-5 = 每個工作日上午 9 點
  • 0 */4 * * * = 每 4 小時一次
  • 0 0 * * 0 = 每週日午夜
  • 0 8 1 * * = 每月 1 號上午 8 點

OpenClaw Cron Jobs 的獨特優勢

相比傳統 crontab,OpenClaw 的 Cron Jobs 具備以下現代化功能:

  • 時區感知:可以指定任務執行的時區,避免伺服器時區與業務時區不一致的問題
  • 錯誤重試:任務失敗時自動重試(可設定重試次數與間隔)
  • 依賴管理:任務 A 成功完成後才執行任務 B
  • 執行日誌:完整的執行歷史,便於除錯與審計
  • 動態啟停:無需重啟系統,可隨時啟用或停用特定任務

Heartbeat:主動監測與即時通知

如果 Cron Jobs 是「我會在這個時間做這件事」,那麼 Heartbeat 就是「如果我沒有在預期時間出現,請通知我」。

Heartbeat 機制讓 OpenClaw 能夠:

  • 定期「報平安」——確認系統與各項服務正常運作
  • 監測外部系統的可用性(網站、API、資料庫)
  • 當異常發生時,即時透過 Telegram、Slack、Email 發送警報
  • 執行自動化修復腳本(如重啟服務、清理暫存檔)

Heartbeat 心跳監測系統概念插畫

完整設定教學

第一步:建立 Cron Jobs 配置(20 分鐘)

建立 ~/.openclaw/cron/jobs.yaml:

cron_jobs:
  - name: daily_sales_report
    schedule: "0 12 * * *"
    timezone: "Asia/Taipei"
    command: "openclaw skills run sales-report --date yesterday"
    retry:
      max_attempts: 3
      delay_seconds: 300
    notify_on_failure:
      channel: telegram
      target: "@admin"

  - name: competitor_price_check
    schedule: "0 8,14 * * *"
    timezone: "Asia/Taipei"
    command: "openclaw skills run price-scraper --competitors all"
    log_level: info

  - name: weekly_team_report
    schedule: "0 9 * * 1"
    timezone: "Asia/Taipei"
    command: "openclaw skills run weekly-summary --channel #management"
    dependencies:
      - daily_sales_report

第二步:設定 Heartbeat 監測(20 分鐘)

建立 ~/.openclaw/heartbeat/monitors.yaml:

heartbeat_monitors:
  - name: website_uptime
    type: http_check
    target: "https://www.94iplay.com"
    interval: "5m"
    timeout: "10s"
    expected_status: 200
    alert_channels:
      - type: telegram
        target: "@admin"
      - type: email
        target: "admin@94iplay.com"

  - name: api_response_time
    type: api_check
    target: "https://api.94iplay.com/health"
    interval: "1m"
    timeout: "5s"
    thresholds:
      response_time_ms: 500
      error_rate_percent: 1.0
    alert_channels:
      - type: slack
        target: "#ops-alerts"

  - name: database_health
    type: command
    command: "pg_isready -h localhost -p 5432"
    interval: "2m"
    on_failure:
      action: restart_service
      service: postgresql
      max_restarts: 3

第三步:啟動服務(5 分鐘)

# 載入 Cron Jobs
openclaw cron reload

# 啟動 Heartbeat 監測
openclaw heartbeat start

# 查看運行狀態
openclaw cron status
openclaw heartbeat status

第四步:設定通知渠道(10 分鐘)

確保已在 OpenClaw 中配置至少一個通知渠道(Telegram、Slack 或 Email)。當 Cron Job 失敗或 Heartbeat 偵測到異常時,系統會透過這些渠道即時通知你。

進階應用場景

智能重試與降級

對於關鍵任務,可以設定多層重試策略。第一次失敗後 5 分鐘重試,第二次失敗後 15 分鐘重試,第三次失敗後發送緊急通知並執行降級腳本(如啟動備用服務)。

條件觸發執行

Cron Job 不僅能定時執行,還能設定條件觸發。例如「只在工作日執行」、「只在網站流量低於 1000 RPM 時執行備份」、「只在股市開盤日執行交易分析」。

Heartbeat 的創意應用

除了監測伺服器,Heartbeat 還能:

  • 監測競爭對手網站的內容更新(偵測到變化時通知)
  • 追蹤特定商品的庫存狀態(補貨時即時通知)
  • 監測社群媒體帳號的粉絲數變化(異常波動時預警)
  • 確認團隊成員的每日報告是否準時提交

常見問題與排除方法

Q: Cron Job 沒有準時執行?
檢查時區設定是否正確(使用 openclaw config get timezone),確認 OpenClaw Gateway 服務正在運行(systemctl status openclaw-gateway),檢查日誌中的錯誤訊息(openclaw logs --job daily_sales_report)。

Q: Heartbeat 誤報頻繁?
調整閾值設定,給予合理的誤差範圍。對於外部 API 監測,考慮網路延遲的波動性,將 timeout 設定為正常回應時間的 2-3 倍。

Q: 任務執行時間過長導致下一輪重疊?
使用 lock 設定防止重疊執行。或在任務設計時將長時間操作拆分為多個短任務,透過依賴關係串連。

結語

Cron Jobs 與 Heartbeat 是 OpenClaw 自動化體系的「神經系統」——Cron Jobs 負責「自主行動」,Heartbeat 負責「感知與反應」。當兩者結合,你的自動化系統就具備了完整的生命週期管理能力:定時執行、監測健康、異常警報、自動修復。

開始設定你的智能排程與監測系統,讓自動化真正「無人值守」。如果你想了解更多整合應用,歡迎閱讀我們的 《OpenClaw + Google Calendar 整合》 或 《OpenClaw + Notion 整合》 教學,打造完整的自動化生態系統。

最後更新:2026年5月16日