暫停與恢復
這是什麼
暫時阻止排程器領取未來工作,保留原始定義,恢復時從現在重新安排下一次執行。
白話解釋
想像從時刻表移除明天的班次,但不會讓已離站的列車掉頭。暫停 Hermes cron 工作只阻止未來的排程觸發被領取,不會中斷已在執行的工作。恢復時會保留原定義,並從目前時間計算下一班。
為什麼重要
維護期間或提供者故障時,需要阻止未來無人值守工作,又不想刪除定義,正是暫停與恢復的用途。暫停只是排程器狀態變更,不會取消已在執行的工作。恢復會從現在重算 next_run_at,因此不會把錯過的週期全部當成積壓重播;超過寬限期的過時單次工作也不能恢復。
運作方式
使用 cron 工作的 pause 動作暫停工作時,不會變更排程或提示;它把 enabled 設為 false、狀態設為 paused,並記錄時間戳與選填原因(cron/jobs.py#pause_job)。排程器掃描到期工作時會略過它,手動執行也會回報 paused/disabled,表示工作已暫停或停用,必須先恢復。resume_job 會把 enabled 改回 true,並從目前時間重算下一次執行,不會在暫停三天後一次補跑三天工作。唯一例外是排定時間已超過寬限期的單次工作;Hermes 會丟出錯誤,而不是恢復一筆永遠不會觸發的執行。
具體範例
模型提供者午後開始持續出錯,而三個 cron 工作每 15 分鐘都會呼叫它。你依工作 ID 逐一暫停;狀態變成 paused,排程器不再領取,但排程與提示維持原樣。兩小時後提供者恢復,你逐一恢復工作;Hermes 從當下計算每筆工作的下一次執行,不會突然補送暫停期間累積的舊請求。
如何連結
「暫停與恢復」屬於「自動化」系列。最直接相關的概念包括:「手動觸發」、「排程任務」、「代理執行環境」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。
來源證據
toolsets.py#<file>— 結構性檔案對應;只確認來源檔關聯,不推論未列出的內部行為。
工作流程
- 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。
