cron 式の構造と各フィールドの役割
cron 式は、定期的なタスクの実行スケジュールを定義するためのテキスト形式の記述法です。本ツールが対応する標準的な 5 フィールド構成の cron 式は、スペースで区切られた以下の 5 つの要素から成り立っています。
- 分: 実行する分を指定します。
- 時: 実行する時間を指定します。
- 日: 実行する月内の「日」を指定します。
- 月: 実行する月を指定します。
- 曜日: 実行する曜日を指定します。
本ツールに cron 式を入力すると、これらのフィールドが自動的に解析され、「スケジュールの詳細」として各項目の意味が分かりやすく分解表示されます。
サポートされる構文と特殊文字
標準的な数値指定に加え、柔軟なスケジュール設定を行うための様々な記法をサポートしています。
- 範囲指定:
1-5のようにハイフンを用いて連続する値を指定します。 - ステップ:
*/15のようにスラッシュを用いて間隔を指定します。この形式を入力した場合、詳細表示には「{n}分ごと」や「{n}時間ごと」のように、指定された間隔に応じた説明が表示されます。 - リスト:
1,15のようにカンマで区切って複数の値を指定します。 - 名前表記: 月名(例:
JAN)や曜日名(例:MON)をアルファベットで指定できます。 - ワイルドカード:
*を指定すると「制限なし」として扱われます。 - ショートカット:
@yearly、@monthly、@weekly、@daily、@hourlyといった事前定義されたショートカット表現も解析可能です。
なお、本ツールは 5 フィールドの標準構文に特化しており、6 番目のフィールドである「秒」や、Quartz などの拡張仕様で使われる L、W、# といった特殊文字には対応していません。
評価ルールと注意すべき挙動
cron 式を記述・運用するにあたり、仕様上の重要なルールと注意点が存在します。
日と曜日の評価ロジック
「日」と「曜日」のフィールドが両方とも * 以外の特定の値に制限されている場合、論理積(AND)ではなく論理和(OR)として評価されます。つまり、どちらか一方の条件を満たしているだけで、そのスケジュールは実行対象となります。
実行不可能なスケジュール
文法的に正しくても、論理的に決して実行されないスケジュールが存在します。例えば、4月、6月、9月、11月といった小の月のみを指定しているにもかかわらず、日のフィールドに 31 を指定した場合などがこれに該当します。このような矛盾がある式を入力すると、ツールは「このスケジュールは実行されることがありません。選択したすべての月に存在しない「日」が指定されていないか確認してください。」というエラーを表示します。
タイムゾーンの影響
cron 式自体にはタイムゾーンの定義が含まれていません。本ツールが計算する「次回の実行予定」の一覧は、お使いのブラウザが検出したローカルタイムゾーンに基づいて変換され、「(ローカル時間)」として表示されます。実際のサーバー環境のタイムゾーン設定と異なる場合があるため、プレビューの際はご注意ください。
ブラウザ内処理によるプライバシー保護
本ツールに入力された cron 式の解析処理および次回実行時間の計算は、すべて利用者のブラウザ内部で完結して実行されます。入力データや解析結果が外部のサーバー(BroBroGo)に送信されることはありません。
よくある質問
このツールはどのような cron 構文をサポートしていますか?
標準的な5フィールドの cron(分、時、日、月、曜日)に対応しています。範囲指定(1-5)、ステップ(/15)、リスト(1,15)、英語の月名や曜日名(JAN, MON)、およびショートカット(@yearly, @monthly, @weekly, @daily, @hourly)が含まれます。見落としがちなルールとして、「日」と「曜日」の両方が制限されている( ではない)場合、どちらか一方に一致すれば実行されます(両方を満たす必要はありません)。
次回実行時間はどのタイムゾーンで表示されますか?
お使いのブラウザのローカルタイムゾーン(システム時計と同じタイムゾーン)です。標準の cron 式自体にはタイムゾーン情報が含まれず、実行するジョブスケジューラーによって決定されます。そのため、表示される時間はあくまでローカル環境でのプレビューとして扱い、必ずしもサーバーの時間とは一致しないことに注意してください。
「このスケジュールは実行されることがありません」と表示されるのはなぜですか?
多くの場合、選択したすべての月に存在しない「日」が指定されていることが原因です。例えば、月フィールドで4月、6月、9月、11月が指定されているにもかかわらず、日フィールドに「31」が指定されている場合などです。リストアップしたすべての月に存在する日を選択するか、スケジュールを別々の式に分割してください。