自動化

暫停與恢復

安全停止和重新啟動無人值守工作的操作控制。

暫停與恢復

這是什麼

安全停止和重新啟動無人值守工作的操作控制。

白話解釋

想像在洗碗機運轉到一半時按下暫停:洗衣程式不會被清除,機器就停在當前位置,等你準備好,再按啟動就會繼續同一個程式,而不是從頭開始。暫停和恢復對 Hermes 任務的作用相同——將其原地停止,而不刪除其排程、提示或歷史記錄,然後讓它以完全相同的配置重新開始。

為什麼重要

暫時停止無人值守的工作——維護窗口、提供者故障、正在進行的除錯——而無需刪除任務定義然後再重新建立,這就是暫停和恢復的用途。對於一個 VPS 部署來說,數十個 cron 任務持續執行,「先暫時停用」需要是一個可逆的一級操作,而不是編輯後祈禱它正常。它與手動觸發相輔相成:一個控制任務是否按照自己的排程執行,另一個讓它無論排程如何都能執行一次。

運作方式

暫停任務(cronjob action pause)不會觸及其排程或提示——它將 enabled 設定為 false,將其狀態設為 paused,並記錄時間戳記和可選的原因(cron/jobs.py#pause_job)。已暫停的任務會被排程器的到期任務掃描跳過,並且也會拒絕手動執行:嘗試觸發它會返回「Job is paused/disabled; resume it before running.」。恢復(resume_job)會將 enabled 設回 true,並從現在(而不是從暫停的時間)重新計算下一次執行時間——因此暫停了三天的任務不會在醒來時一次觸發三天的積壓工作。一個例外:一次性任務如果其排程時間已經超過了寬限期,則完全無法恢復——Hermes 會拋出錯誤,而不是悄悄地復活一個永遠不會觸發的執行。

具體範例

你的模型提供者在下午開始拋出錯誤,三個不相關的 cron 任務每十五分鐘都會呼叫它。你按任務 ID 暫停每個任務;每個任務的狀態會切換為暫停,排程器停止在觸發掃描中選中它們。一旦提供者恢復正常,你恢復每個任務;排程器會從現在開始重新計算它們的下一次執行時間,而不是讓三小時的積壓工作一次性全部觸發。