開發者工具 · Crontab 產生器
大聲朗讀 cron 表達式: */5 9-17 * * 1-5 如何變成單字
· 工作原理
規劃任務 程式碼審查 開發人員工作流程
一旦知道順序,將表達式翻譯成英文就是一個機械過程。這篇文章給出了閱讀演演算法,將其應用於棘手的範例,並展示了產生器的解釋如何幫助您檢查。
差異中的 crontab 您無法查看 - 五個帶有步驟和範圍的欄位,沒有註釋解釋它們
拉取請求中的五個令牌表達式是壓縮為標點符號的可執行策略。識別形狀但無法大聲說出時間表的審閱者可能會錯過包容性端點、錯誤的步驟或兩天欄位之間的特殊關係。因此,翻譯是一種正確性檢查,而不是裝飾性的文件。
ToolAcre 從警告和預覽使用的解析物件中派生出其句子。僅貼五個欄位,將命令和秘密留在外面。如果產生的措辭與作者的評論不同,請在將表達式安裝到任何地方之前暫停審核並解決意圖。
先閱讀日期欄位 - 星期幾和月份告訴您哪一天,然後分鐘和小時告訴您時間
日曆範圍最容易在時脈詳細資料之前建立。月份和工作日顯示一年或一周的哪些部分符合資格;一個月中的某一天可以添加另一個日曆條件;小時和分鐘,然後在匹配的日期內執行。此閱讀順序供人工審閱,而表達式儲存的位置順序仍然是分鐘優先。
總是詢問兩個日期欄位是否受到限制。如果是這樣,ToolAcre 將用“or”將它們連接起來並發出警告。隨意閱讀它們,因為相鄰的 AND 過濾器會改變時間表。一天欄位中的通配符消除了這種歧義,並讓另一個欄位充當唯一一天的限制。
將每個標記翻譯為“每個”,將數字翻譯為“at”,將範圍翻譯為“從–到”,將步驟翻譯為“每 N 個起始點”
星星表示該位置的所有允許值。一個數字選擇一個值。連字符包含其端點之間的每個值。逗號組合項目,斜線對從通配符、範圍或裸開頭開始的每個 n 個值進行取樣。該欄位本身的最小值決定了通配符步驟的開始位置。
接受月份和工作日的名稱,不區分大小寫,包括 `JAN-MAR` 和 `MON-FRI` 等範圍。星期日可以寫為 0 或 7 並標準化為 0。描述代碼將連續的擴展值轉換為“通過”措辭,並將不連續的值轉換為可讀列表。
工作範例:該工具描述了選定的小時數,而擴展的分鐘值則確定了最終執行
`*/5 9-17 * * 1-5` 選擇分鐘值 0 到 55(以 5 為步長)、小時值 9 到 17 以及星期一到星期五的工作日。該工具描述了所選小時範圍內的分鐘步進。展開這些值表明,所包含的 17 小時內的最終候選者是 17:55。
當「9-17」被解釋為工作日邊界時,最後一個候選人經常被錯過。 Cron 選擇完整的小時值,然後將它們與所有選定的分鐘組合起來。如果意圖以 17:00 結尾,則不能僅僅因為「朝九晚五」一詞聽起來很熟悉,就將表達式視為正確。
工作範例: 0 0 1,15 * 3 — 讀取日場或大聲排除,以免錯過
現在閱讀 `0 0 1,15 * 3`。選擇午夜,每個月的第一天或第十五天,工作日為星期三。由於兩個日期欄位都受到限制,因此日曆條件為每月的第一天或第十五天或每週三。這不是「日期為 1 或 15 的星期三」。
ToolAcre 的警告使該聯合變得突出,並其描述插入了“或”一詞。下次執行預覽給出了所選區域的具體日期。檢查所有三個輸出,因為僅一個流利的句子可能仍然掩蓋了潛在的需求是方言無法直接表達的交集。
僅在對照表達式進行檢查後才儲存意圖註釋
表達式上方的註解可以保留意圖,但也可以在欄位更改後保留舊的謊言。在審閱期間根據當前標記產生或手動重建句子。如果編輯將 `0` 變更為 `*/5`,請僅在確認擴充分鐘集和最終執行後更新註解。
更喜歡說明掛鐘區域假設以及頻率的評論。此表達式不包含時區欄位,而 ToolAcre 的預覽要求審閱者選擇一個。該註釋可以幫助其他人重現相同的列表,而不意味著瀏覽器選擇會配置最終的調度程式。
六、七域語法被拒絕,不翻譯
解析器正好需要五個欄位。六欄位輸入接收有關前導秒樣式的具體解釋;較長的形式不被解釋。 ToolAcre 也沒有年份欄位。因此,本文中的簡單英語演演算法僅適用於儲存庫的五欄位語法。
在剩餘文字驗證之前,請勿從 Quartz、Spring 或其他產品中刪除欄位。不受支援的運算子可以具有重要意義。翻譯需要兩個系統的文件,而該產生器僅提供其自己接受的值、名稱、範圍、列表、步驟、通配符和別名的證據。
重點:每個表達式都有一個句子 - 並 Crontab 產生器會產生該句子,以便您可以將其與意圖進行比較
每個支援的表達式都可以擴展為有限欄位值和日曆句子。閱讀這些值可以發現非正式短語省略的邊緣候選值。它也會在時間表到達操作主機之前強制將日場 OR 規則納入對話中。
為了進行審查,請貼上表達式,將產生的描述與規定的要求進行比較,檢查警告並採樣即將到來的時間。將產生的註解保留在行旁邊,但將解析的表達式視為可執行來源。產生器解釋計劃意圖;它不證明命令或安裝它。