22:30 排程工作健康檢查
Hermes 名稱:cron 健康檢查 · job_id:41eeb394dee7
排程中 正常 系統 純腳本 P1
這個工作做什麼
每週一至五晚上檢查所有開啟中的排程工作是否正常:有沒有執行失敗、通知沒送出去、該跑沒跑、或卡住超過兩小時的狀況。全部正常就完全安靜不發訊息,有異常才把診斷資訊推到 Telegram。
💡 為什麼需要:排程一多難免有工作悄悄掛掉,它像夜班巡邏員,確保隔天一早醒來前就知道哪些自動化壞了,不用等使用者自己發現。
什麼時候跑
⏰ 平日(一~五) 22:30(30 22 * * 1-5)
上次執行:2026-08-21 22:30 下次:2026-08-24 22:30 最近結果:completed
主要規則
- MANIFEST
週一至五 22:30 執行 - CONFIG
只檢查 enabled 的工作,已暫停的不看 - CONFIG
上次執行狀態為 error、或每日工作超過 48 小時沒跑 → 異常 - CODE
next_run 逾期超過 2 小時、或執行卡住超過 2 小時 → 異常 - CODE
全部正常時靜默不輸出;有異常才推送 Telegram
上下游關係
⬆️ 需要誰:—
⬇️ 誰用它的結果:—
最近的改變
- 2026-08-23T08:17 JOB_ADDED job 41eeb394dee7 appeared (cron 健康檢查)
讀寫了哪些資料
| 類型 | 位置 | 存取 |
|---|---|---|
| SQLITE_TABLE | self | read |
| SQLITE_TABLE | self | read |
完整任務指示(技術)
[IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered. Do NOT use send_message.]
你是蓓兒丹娣。執行 cron 健康檢查,檢查所有 enabled cron jobs 的狀態。
## 檢查範圍
1. 使用 cronjob(action='list') 取得所有 cron jobs 清單
2. 篩選出 enabled=true 的 jobs
3. 對每個 enabled job,檢查:
- last_status:是否為 "error"
- 若 last_run_at 超過預期執行週期仍未執行(例如每日排程卻超過 48 小時未跑)
4. 最後一次執行是否有 delivery error
## 健康檢查報告格式
**📋 cron 健康檢查報告** (資料時間: {current_date})
✅ 全部正常時:
```
所有 {N} 個 enabled cron jobs 皆正常運作 ✅
```
⚠️ 有錯誤時,列出每個異常 job:
```
❌ 異常 Job #{n}: {job_name}
排程: {schedule}
上次執行: {last_run_at}
狀態: {last_status}
交付錯誤: {last_delivery_error or "無"}
```
## 錯誤摘要區塊(P0 — 給 LLM 診斷用)
如果有任何異常 job,在報告末尾加上以下格式的摘要區塊,讓建智大人可以直接複製貼給 LLM 思考解決方案:
```
=== CRON_ERROR_DIAG ===
Time: {ISO datetime}
Total jobs: {N} | Enabled: {E} | Errors: {Err}
Job: "{job_name}" ({job_id})
Schedule: {schedule}
Script: {script or "none"}
Last run: {last_run_at}
Status: {last_status}
Delivery error: {last_delivery_error or "none"}
Last OK: (last time it ran successfully)
Possible causes:
- (根據 error 類型推測 2-3 個可能原因)
=== END_CRON_ERROR_DIAG ===
```
錯誤類型判斷指引:
- `last_status="error"` + `last_delivery_error=null` → 腳本執行失敗(exit code non-zero)
- `last_status="ok"` + 有 `last_delivery_error` → 腳本成功但交付失敗
- `last_status="error"` + 有 `last_delivery_error` → 雙重失敗
- 長時間未執行(超過排程間隔 2 倍)→ 排程器可能卡住
## 輸出規則
- 全部正常 → 簡潔回報一句話即可
- 有異常 → 輸出完整報告 + 每個異常 job 的診斷區塊
- 不要加不必要的修飾語,建智大人只看事實…
job_id: 41eeb394dee7 · 本頁由 Python 自動產生,非即時資料。