日本語

開発者ツール · Crontab ジェネレーター

cron 式の読み上げ: */5 9-17 * * 1-5 が単語になる仕組み

· 仕組み

クロン コードレビュー 開発者ワークフロー

平易な言語のレビュー カードに流れ込む 5 つの cron トークン
オリジナル ToolAcre ベクトル イラスト

表現を英語に翻訳するのは、順序が分かれば機械的なプロセスです。この投稿では、読み取りアルゴリズムを示し、それを難し​​い例に適用し、ジェネレーターの説明がチェックにどのように役立つかを示します。

確認できない差分の crontab — ステップと範囲を含む 5 つのフィールド、およびそれらを説明するコメントなし

プル リクエスト内の 5 つのトークン式は、句読点に圧縮された実行可能なポリシーです。形状は認識しているが、スケジュールを声に出して言うことができないレビュー担当者は、包括的なエンドポイント、間違ったステップ、または 2 日のフィールド間の特別な関係を見逃す可能性があります。したがって、翻訳は正確性をチェックするものであり、表面的な文書ではありません。

ToolAcre は、警告とプレビューで使用される解析されたオブジェクトから文を派生します。コマンドとシークレットは外したまま、5 つのフィールドのみを貼り付けます。生成された文言が作成者のコメントと異なる場合は、レビューを一時停止し、その文言がどこかに組み込まれる前に意図を解決してください。

最初に曜日フィールドを読み取ります。曜日と月で曜日がわかり、次に分と時でいつであるかがわかります。

カレンダーのスコープは、時計の詳細の前に確立するのが最も簡単です。月と曜日によって、年または週のどの部分が対象となるかがわかります。月の日には、別のカレンダー条件が追加される場合があります。時と分を表示し、一致する日付内のランを配置します。この読み取り順序は人間が確認するためのものですが、式に保存されている位置順序は分が先のままです。

両方の日のフィールドが制限されているかどうかを常に尋ねます。その場合、ToolAcre はそれらを「or」で結合し、警告を発します。隣接する AND フィルターとして気軽に読むと、スケジュールが変更されます。 1 日のフィールドにワイルドカードを使用すると、そのあいまいさがなくなり、もう 1 つのフィールドが 1 日の制限として機能します。

各トークンの変換 — * は「すべて」、数値は「at」、範囲は「from–to」、ステップは「から始まる N ごと」

星印は、その位置で許可されるすべての値を意味します。数値は 1 つの値を選択します。ハイフンには、そのエンドポイント間のすべての値が含まれます。カンマは項目を結合し、スラッシュはワイルドカード、範囲、またはベアの先頭の先頭から 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 で終了する場合、「9 時から 5 時まで」という言葉に聞き覚えがあるというだけの理由で、その表現が正しいとは判断できません。

有効な例: 0 0 1,15 * 3 — 曜日フィールドの OR ルールを読み上げて、見逃さないようにします。

次に、`0 0 1,15 * 3` を読んでください。午前 0 時、日付は 1 日または 15 日、平日は水曜日が選択されます。両方の日付フィールドが制限されているため、カレンダー条件は毎月 1 日または 15 日、または毎週水曜日です。 「日付が1または15の水曜日」ではありません。

ToolAcre の警告ではその結合が目立つようになり、その説明には「または」という単語が挿入されます。次回実行プレビューには、選択したゾーンの具体的な日付が表示されます。 3 つの出力すべてを確認してください。流暢な文だけでは、根底にある要件が方言では直接表現できない交差点であることが依然として隠蔽されている可能性があるためです。

インテント コメントは、式と照合してからのみ保存します

式の上のコメントは意図を保存できますが、フィールドが変更された後も古い嘘を保存することもできます。レビュー中に現在のトークンから文を生成または手動で再構築します。編集によって `0` が `*/5` に変更される場合は、拡張された分セットと最終実行を確認した後にのみコメントを更新してください。

周波数だけでなく実測ゾーンの仮定も記載するコメントを推奨します。式にはタイムゾーンフィールドが含まれていませんが、ToolAcre のプレビューではレビュー担当者にタイムゾーンフィールドを選択するよう求められます。このメモは、ブラウザの選択によって最終的なスケジューラが構成されることを暗示することなく、別の人が同じリストを再現するのに役立ちます。

6 フィールドおよび 7 フィールドの文法は拒否され、翻訳されません

パーサーにはちょうど 5 つのフィールドが必要です。 6 フィールドの入力には、先頭の秒のスタイルに関する具体的な説明が表示されます。長い形式は解釈されません。 ToolAcre にも年フィールドはありません。したがって、この記事の平易な英語のアルゴリズムは、リポジトリの 5 フィールドの文法にのみ適用されます。

残りのテキストが検証されるまで、Quartz、Spring、または他の製品からフィールドを削除しないでください。サポートされていない演算子は、重要な意味を持つ可能性があります。変換には両方のシステムのドキュメントが必要ですが、このジェネレーターは、独自に受け入れられる値、名前、範囲、リスト、ステップ、ワイルドカード、およびエイリアスの証拠のみを提供します。

要点: すべての式には文があります。Crontab ジェネレーターはその文を生成するので、意図と比較できます。

サポートされているすべての式は、有限フィールド値とカレンダー文に拡張できます。これらの値を読み取ると、非公式なフレーズが省略したエッジ候補が明らかになります。また、スケジュールが運用ホストに到達する前に、日付フィールドの OR ルールが会話に強制的に組み込まれます。

レビューのために、式を貼り付け、生成された説明を指定された要件と比較し、警告を検査し、今後の時間をサンプルします。結果のコメントは行の横に保持しますが、解析された式を実行可能ソースとして扱います。ジェネレーターはスケジュールの意図を説明します。コマンドを証明したり、インストールしたりするものではありません。