メインコンテンツへスキップ

無料Cron 式ビルダー

スケジュールされたタスクの cron 式を構築、検証、説明します。ライブの平易な英語の説明、次の 5 回の実行プレビュー、および共通のパターン プリセット。

読み込み後はオフラインでも動作
分
(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. 1
    式はフィールドごとに解析される
    パーサーは式を空白区切りの5つ(または6つ)のフィールドに分割し、それぞれをカンマ、範囲(例:1-5)、ステップ記法(例:*/15)、MONやJANのような名前付きの値についてトークン化します。@dailyのような@マクロは解析開始前に5フィールドの等価な形に展開されます。無効な値や範囲外の数値は、地域化されたメッセージにマッピングされる型付きエラーキーとして表示されます。
  2. 2
    人間が読める説明が組み立てられる
    lib/cron.ts内のdescribeCron()は、どのフィールドがワイルドカードで、どれが明示的な集合かを調べて英語(または現地語)の文を構築します。日付名と月名はアクティブな地域設定を使ってIntl.DateTimeFormatで解決され、リストの項目はIntl.ListFormatを使って結合されるため、接続詞(「と」やカンマ、地域固有の形式)がユーザーの言語に一致します。
  3. 3
    次の実行時刻はフィールドスキップで計算される
    nextRuns()は現在の時刻からDateオブジェクトを先に進めますが、すべての分をテストするのではなく、一致しえない月、日、時間全体をスキップします。これにより、2月30日のような不可能なスケジュールは、260万回ループするのではなく5年先までのチェックで素早く終了します。
  4. 4
    式はURLフラグメントで共有される
    入力した式はすべて、ページのURLフラグメント#expr=に書き込まれます(window.history.replaceStateを介して500ミリ秒のデバウンス付き)。フラグメントはサーバーに送信されることはなく、ページは読み込み時にそこから状態を復元するため、URLの共有やブックマークにより、サーバー側の状態なしで正確な式が復元されます。

関連ツール

よくある質問