cronの*/45が「45分おき」ではない理由
09:00、09:45、10:00。時間の境界が予期しない追加実行を説明します。
*/45 * * * * は毎時0分と45分に実行されます。間隔は45分と15分が交互に繰り返されます。前回の実行から45分待つわけではありません。
Cronは時計のフィールドにマッチします。分フィールドのステップは時間が変わるとリセットされます。この違いは、レポートやフィードの更新、クリーンアップジョブのスケジューリング時に重要です。
時間の境界を確認する
cronビルダーを開き、式を貼り付けを選択して*/45 * * * *を入力します。スケジュールタイムゾーンをUTCに設定し、後にプレビューで2026年11月6日08:59を選びます。スマホでは今後の実行に切り替えて一覧を確認してください。
最初の5回の実行は以下の通りです。
| UTCでの実行時間 | 前回実行からの間隔 |
|---|---|
| 09:00 | — |
| 09:45 | 45分 |
| 10:00 | 15分 |
| 10:45 | 45分 |
| 11:00 | 15分 |
さらに5件表示でプレビューを拡張できます。日付は固定しているので、記録された実行を再現可能です。任意のUTC日付でも同じ時間境界の動作が確認できます。プレビューは選択した時刻より後の実行予定のみを表示します。
ステップはフィールド内で完結する
分フィールドは0から59までです。45分刻みは0と45を選び、次の時間でまた0に戻ります。比較として*/15 * * * *は0, 15, 30, 45を選び、UTCで均等な15分間隔を作ります。
crontabマニュアルにはこのフィールドごとの動作が説明されています。ビルダーは分、時、日、月、曜日の5フィールドをサポートします。秒を含む6フィールド式は別の方言であり、ここでは拒否されます。
プレビュー上の説明は参考になりますが、ステップ式を使う前に実際のタイムスタンプを必ず確認してください。特に時間境界をまたぐ実行ペアをチェックしてください。
45分間隔の時計スケジュールが必要な場合
UTCで00:00、00:45、01:30、02:15、03:00…と固定したスケジュールには、3時間周期をカバーする4つの式があります。
0 0-23/3 * * *
45 0-23/3 * * *
30 1-23/3 * * *
15 2-23/3 * * *
それぞれの式を個別にプレビューしてください。ツールは1式ずつ処理し、ジョブを設定しません。スケジューラーでは4つすべてを同じタスクを呼び出すよう設定し、各式でUTCを使います。これはスケジュール式のみで、Unixのcrontabでは各式の後にコマンドが必要です。ホスティングサービスでは別のトリガー設定かもしれません。
4つの式をダウンロードできます。結合プレビューでは09:00、09:45、10:30、11:15、12:00が表示され、45分間隔です。これはジョブ完了からの遅延ではなく、時計に基づくスケジュールです。
ジョブに合わせてスケジュールを調整する
「このタスク終了後に45分待つ」必要がある場合は、その間隔動作を持つスケジューラーやキューを使ってください。cronのステップや4式の時計スケジュールは前回の実行完了を待ちません。長時間かかる可能性がある場合は、重複実行を防ぐ方法を決めてください。
このプレビューのタイムゾーン設定はコピーした式には引き継がれません。移行先のスケジューラーで再設定してください。例ではUTCを使い、夏時間の変更による時計のずれを避けています。ローカル時間スケジュールは夏時間の変化を別途確認してください。
結果記録は2026年11月6日にツールの実際のパーサーで生成されました。交互の間隔と4式合計65回のマッチを検証しています。これは計算チェックであり、バックグラウンドジョブのインストールや実行の証明ではありません。