⏰
無料Cron 式ビルダー
スケジュールされたタスクの cron 式を構築、検証、説明します。ライブの平易な英語の説明、次の 5 回の実行プレビュー、および共通のパターン プリセット。
読み込み後はオフラインでも動作
分
(0-59)時
(0-23)日
(1-31)月
(1-12)曜日
(0-7)
(0-59)時
(0-23)日
(1-31)月
(1-12)曜日
(0-7)
説明
09:00 に, 月曜日から金曜日.
よく使うパターン
標準Unix cron、GitHub Actions、Kubernetes CronJob、その他主要スケジューラに対応。* で「毎」、*/5 で「5ごと」、1-5 で範囲指定、1,15 で個別指定。 @hourly、@daily、@weekly、@monthly、@yearly、および MON-FRI や JAN-DEC などの名前も受け入れます。
主な用途
- GitHub Actionsワークフロー用のCronを構築するGitHub Actionsはスケジュールされたワークフロー用のcron構文を使用します。ここでスケジュールを構築して確認します。
- Kubernetes CronJob用のCronを構築するKubernetes CronJobリソースは標準のcron構文を使用します。式を視覚的に構築して説明します。
- Linux crontab用のCronエントリを構築する従来のUnix cron (cron、crontab -e) 用の式を自信を持って構築します。
- データベース保守ジョブをスケジュールするcron式を使用してバックアップ、バキューム、または分析ジョブを自信を持ってスケジュールします。
- Cron式がどのように機能するかを学ぶ各調整は即座にプレーンな英語説明と次の5回の実行のプレビューを表示します—cronを学ぶ最良の方法。
使い方
cron式ビルダーはlib/cron.tsの手書きパーサーを使ってブラウザ内で完全に動作します — 外部ライブラリもサーバー呼び出しも不要です。式を検証し、ブラウザ内蔵のIntl.DateTimeFormatとIntl.ListFormat APIを使って地域設定に応じた日付・月名でプレーンな英語(または現地語)の説明を組み立て、次の実行時刻を、すべての分を総当たりするのではなくフィールドスキップロジックで時間を先に進めながら計算します。
- 1式はフィールドごとに解析されるパーサーは式を空白区切りの5つ(または6つ)のフィールドに分割し、それぞれをカンマ、範囲(例:1-5)、ステップ記法(例:*/15)、MONやJANのような名前付きの値についてトークン化します。@dailyのような@マクロは解析開始前に5フィールドの等価な形に展開されます。無効な値や範囲外の数値は、地域化されたメッセージにマッピングされる型付きエラーキーとして表示されます。
- 2人間が読める説明が組み立てられるlib/cron.ts内のdescribeCron()は、どのフィールドがワイルドカードで、どれが明示的な集合かを調べて英語(または現地語)の文を構築します。日付名と月名はアクティブな地域設定を使ってIntl.DateTimeFormatで解決され、リストの項目はIntl.ListFormatを使って結合されるため、接続詞(「と」やカンマ、地域固有の形式)がユーザーの言語に一致します。
- 3次の実行時刻はフィールドスキップで計算されるnextRuns()は現在の時刻からDateオブジェクトを先に進めますが、すべての分をテストするのではなく、一致しえない月、日、時間全体をスキップします。これにより、2月30日のような不可能なスケジュールは、260万回ループするのではなく5年先までのチェックで素早く終了します。
- 4式はURLフラグメントで共有される入力した式はすべて、ページのURLフラグメント#expr=に書き込まれます(window.history.replaceStateを介して500ミリ秒のデバウンス付き)。フラグメントはサーバーに送信されることはなく、ページは読み込み時にそこから状態を復元するため、URLの共有やブックマークにより、サーバー側の状態なしで正確な式が復元されます。