開發者工具 · Crontab 產生器
anacron 和 cron.daily:計劃的作業如何在機器關閉時倖存下來
· 背景
規劃任務 可靠性 調度
cron 假設機器始終處於開啟狀態; anacron 沒有。這篇文章解釋了 anacron 如何追蹤上次執行,Debian 風格的 cron.daily 目錄如何使用它,以及如何在兩者之間進行選擇。
睡眠機器場景位於瀏覽器之外;預覽僅搜尋未來的候選人
ToolAcre 無法觀察筆記型電腦是否在 06:25 期間處於睡眠狀態。它的下一次執行函數接收一個起始時刻並嚴格向前搜索,一分鐘後開始。不會返回較早的匹配分鐘數,因為該功能是未來預覽,而不是歷史記錄或恢復引擎。
這使得該清單對於計劃很有用,但對於追趕卻沒有提及。過去的候選人失踪可能已經執行、被跳過或被其他服務處理;瀏覽器沒有執行記錄。從已安裝的排程器診斷停機行為,而不是從僅限未來的清單中的缺席情況來診斷。
此處未建立外部 cron 錯過執行行為
工作簿斷言 cron 會丟棄錯過的分鐘數。此儲存庫中沒有守護程式實作或正常執行時間測試,因此不重複通用宣告。事實證明,ToolAcre 本身不會對作業進行排隊:它計算記憶體中的日期並將其返回到頁面。
目標調度程序可以記錄錯過執行的策略,並包裝器可以新增另一個策略。明確地捕捉該政策。相同的 `0 6 * * *` 表達式可以參與不同的復原設計,而無需變更其五個值中的任何一個。
anacron 狀態和延遲未實現
`cron.js` 中沒有 anacron 時間戳記檔案、週期計數器或啟動延遲。解析器知道日曆欄位,而預覽知道可設定的搜尋範圍。兩者都不儲存外部操作上次完成的時間。
因此本文無法從項目證據解釋 anacron 的確切狀態轉換。如果需要趕上,請研究並測試實際設施。 ToolAcre 仍然可以建立與其一起保留的任何精確時間 cron 行,但它無法驗證 anacron 策略。
anacrontab 語法位於五欄位解析器之外
anacrontab 行不是五個欄位 cron 表達式。將其周期、延遲和標識符輸入 ToolAcre 會導致欄位計數或值驗證失敗,而不教授任何有關其實際語法的內容。類似的調度目標並不意味著可互換的檔案格式。
使本機驗證器保持本機語法。將此路由用於分鐘到工作日的表達式,並使用單獨的來源進行基於時間段的追趕配置。翻譯應該保留操作要求,而不僅僅是強制一種文字形式通過另一個解析器。
cron.daily 接線
正在審查的程式碼庫中不存在目錄機制和套件之間的切換。產生器無法知道 `/etc/cron.daily` 是否存在、哪個執行程式呼叫它或安裝另一個套件時會發生什麼。任何此類接線都是特定於環境的證據。
在移動任務之前清點目標。目錄名稱本身並不能顯示掛鐘時間或追趕行為。將觀察到的服務配置與要求進行比較,僅當作業確實保留在相容的 cron 路徑中時才保留 ToolAcre 表達式。
工作邊界:比較未來的候選人,但不承諾趕上
對於日常範例,請輸入 `0 6 * * *` 並選擇部署區域。預覽版列出了最多五個未來的 06:00 掛鐘候選人。如果開始時刻已經超過今天的 06:00,明天將成為第一個結果。這是前瞻性搜索行為,而不是今天早上發生的事情的證據。
使用此清單檢查日曆意圖和區域轉換。然後在預定時間內重新啟動或暫停安全測試環境,並觀察實際調度程序的策略。這兩個實驗回答了不同的問題,應單獨記錄。
持久計時器行為未經驗證並被忽略
工作簿提到了另一個服務管理員中的持久設定。這裡沒有單元解析器或測試支援該語句。它可能是相關的外部研究,但該模組不會將其變成沒有權威來源材料的推薦。
錯過執行的要求值得明確的接受標準:是否立即執行、跳過、合併或保留每個事件。選擇一個記錄所需結果的系統並進行驗證。 ToolAcre 可以提供用作基線的 cron 節奏,僅此而已。
重點:將時間表與單獨驗證的錯過執行政策配對
如果機器可能無法使用,則作為可靠性設計的循環表達式是不完整的。日曆匹配和追趕政策是分開的。 ToolAcre 公開了前者,並故意沒有為後者保留執行狀態。
預覽未來,記錄區域,然後測試目的地的錯過執行行為。如果另一個機制擁有恢復功能,請在表達式旁邊記錄。避免說產生器或五個欄位保證重試,因為兩者都無法觀察到錯過了一次執行。