この式の仕組み
式 0 9 * * 1-5 は 標準 crontab の構文で書かれています。左から右へフィールドごとに読みます。各フィールドがジョブを実行できるタイミングを絞り込み、現在時刻がすべてのフィールドに一致したときにスケジューラーがジョブを開始します。わかりやすく言うと「次において実施09:00、月曜日 から 金曜日 まで」という意味です。
スケジューラーに合わせる
crontab、Kubernetes、GitHub Actions は 5 フィールド形式を使います。Quartz と Spring は先頭に秒フィールドが必要で、Quartz と AWS はさらに 2 つの日付フィールドの一方に「?」が必要です。上の表はこれらの違いをすでに反映しています。GitHub Actions と AWS EventBridge のルールは UTC で実行され、crontab はサーバーのタイムゾーンを使うため、同じ式でも実行環境によって現地時刻が変わる点に注意してください。
デプロイ前に確認
最終的な式を上の解説ツールに貼り付け、実際に実行するマシンのタイムゾーンを選びましょう。次回実行時刻の一覧で、夏時間の切り替え前後も含めてジョブがいつ開始されるかが正確に分かるので、1 時間ずれるようなミスを本番前に見つけられます。
よくある質問
- 平日の午前 9 時に実行する Cron 式は?
- 標準 crontab では 0 9 * * 1-5 です。Quartz では 0 0 9 ? * MON-FRI、AWS EventBridge では cron(0 9 ? * MON-FRI *) です。
- どのタイムゾーンで実行されますか?
- crontab はサーバーのローカルタイムゾーン、Kubernetes はコントローラーのタイムゾーンまたは spec.timeZone、GitHub Actions と AWS EventBridge のルールは UTC を使います。
- スケジュールをテストするには?
- このページの解説ツールに貼り付けてください。任意のタイムゾーンでの次の 10 回の実行時刻を、現地時刻と並べて表示します。
- 少し変更できますか?
- はい。ツールで式を編集するか、ビジュアルビルダーを使ってください。説明と実行時刻は入力に合わせて更新されます。