本文へスキップ
cron.surf

Quartz の cron を Kubernetes に変換

Quartz のフィールドは 秒 分 時 日 月 曜日 [年]、Kubernetes は 分 時 日 月 曜日 です。式を貼り付けると変換します。正確に対応しない部分は理由と代替案を示します。

“00:00、月の最終日”

変換先 · Kubernetes変換不可
  • 日: Kubernetes には「月末」がありません。月末は 28 日から 31 日まで変わるため、固定の日付では一致しません。

    代替案28〜31 日に実行し、翌日が 1 日でなければ終了します。GNU date が必要です。crontab では % を \% と書きます。
    0 0 28-31 * *  # job: [ "$(date -d tomorrow +%d)" = "01" ] || exit 0
    これだけでは同等になりません。ジョブ内での判定が必要です。

他のプラットフォームでの同じスケジュール

crontab変換不可
  • 日: crontab には「月末」がありません。月末は 28 日から 31 日まで変わるため、固定の日付では一致しません。

    代替案28〜31 日に実行し、翌日が 1 日でなければ終了します。GNU date が必要です。crontab では % を \% と書きます。
    0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && /path/to/job
    これだけでは同等になりません。ジョブ内での判定が必要です。
GitHub Actions変換不可
  • 日: GitHub Actions には「月末」がありません。月末は 28 日から 31 日まで変わるため、固定の日付では一致しません。

    代替案28〜31 日に実行し、翌日が 1 日でなければ終了します。GNU date が必要です。crontab では % を \% と書きます。
    0 0 28-31 * *  # job: [ "$(date -d tomorrow +%d)" = "01" ] || exit 0
    これだけでは同等になりません。ジョブ内での判定が必要です。
cron(0 0 L * ? *)
cron() は 6 フィールド。日付フィールドの一方は ?。タイムゾーン未設定なら UTC。
Spring同等
0 0 0 L * *
6 フィールドで秒が先頭。zone= を指定しなければサーバーのタイムゾーン。

次の 10 回の実行

ブラウザで計算
  1. 計算中…

Quartz と Kubernetes の違い

QuartzKubernetes
フィールド秒 分 時 日 月 曜日 [年]分 時 日 月 曜日
日曜日1(SUN=1 … SAT=7)0(7 はエラー)
日と曜日の両方を指定一方は ? が必須どちらか一致。制限なしは * か ? のみ
特殊文字L W # LW L-nなし
短縮形なし@yearly @monthly @weekly @daily @hourly
タイムゾーンinTimeZone()、なければ JVMspec.timeZone、なければコントローラー
最短間隔1 秒1 分

よく使うスケジュールの変換結果

QuartzKubernetes
5 分ごと0 */5 * * * ?*/5 * * * *
1 時間ごと0 0 * * * ?0 * * * *
毎分0 * * * * ?* * * * *
10 分ごと0 */10 * * * ?*/10 * * * *
15 分ごと0 */15 * * * ?*/15 * * * *
30 分ごと0 */30 * * * ?*/30 * * * *
毎日 0 時0 0 0 * * ?0 0 * * *
毎日 9 時0 0 9 * * ?0 9 * * *
平日 9 時0 0 9 ? * 2-60 9 * * 1-5
毎週月曜日0 0 0 ? * 20 0 * * 1
毎月 1 日0 0 0 1 * ?0 0 1 * *
6 時間ごと0 0 */6 * * ?0 */6 * * *
毎週日曜日 0 時0 0 0 ? * 10 0 * * 0
2 時間ごと0 0 */2 * * ?0 */2 * * *
12 時間ごと0 0 */12 * * ?0 */12 * * *
毎日 12 時0 0 12 * * ?0 12 * * *
毎週金曜日0 0 0 ? * 60 0 * * 5
毎月末日0 0 0 L * ?変換不可
四半期ごと0 0 0 1 */3 ?0 0 1 */3 *
2 分ごと0 */2 * * * ?*/2 * * * *
3 時間ごと0 0 */3 * * ?0 */3 * * *
毎日 6 時0 0 6 * * ?0 6 * * *
毎日 18 時0 0 18 * * ?0 18 * * *
1 日 2 回0 0 */12 * * ?0 */12 * * *
平日 18 時0 0 18 ? * 2-60 18 * * 1-5
週末 10 時0 0 10 ? * 1,70 10 * * 0,6
毎月 15 日0 0 0 15 * ?0 0 15 * *
毎月第 1 月曜日0 0 9 ? * 2#1変換不可
毎月最終金曜日0 0 17 ? * 6L変換不可
年 1 回0 0 0 1 1 ?0 0 1 1 *
30 秒ごと*/30 * * * * ?変換不可
3 分ごと0 */3 * * * ?*/3 * * * *
20 分ごと0 */20 * * * ?*/20 * * * *
4 時間ごと0 0 */4 * * ?0 */4 * * *
8 時間ごと0 0 */8 * * ?0 */8 * * *
毎日 1 時0 0 1 * * ?0 1 * * *
毎日 2 時0 0 2 * * ?0 2 * * *
毎日 3 時0 0 3 * * ?0 3 * * *
毎日 8 時0 0 8 * * ?0 8 * * *
毎平日0 0 0 ? * 2-60 0 * * 1-5
毎週末0 0 0 ? * 1,70 0 * * 0,6
毎週火曜日0 0 0 ? * 30 0 * * 2
毎週水曜日0 0 0 ? * 40 0 * * 3
毎週木曜日0 0 0 ? * 50 0 * * 4
毎週土曜日0 0 0 ? * 70 0 * * 6
6 か月ごと0 0 0 1 */6 ?0 0 1 */6 *
10 秒ごと*/10 * * * * ?変換不可
5 秒ごと*/5 * * * * ?変換不可

よくある質問

Quartz の式はすべて Kubernetes に変換できますか?

すべてではありません。このページの 48 件のうち 42 件が同等に変換できます。残りは代替案が必要で、変換ツールが表示します。

Quartz と Kubernetes で日曜日はどう書きますか?

Quartz:1(SUN=1 … SAT=7)。Kubernetes:0(7 はエラー)。

タイムゾーンも引き継がれますか?

式自体にはタイムゾーンがありません。Quartz:inTimeZone()、なければ JVM。Kubernetes:spec.timeZone、なければコントローラー。