cron ジョブ スケジュールの構成

このページでは、unix-cron 形式を使用してジョブのスケジュールを記述する方法を簡単に説明します。従来のApp Engine cron 構文を使用してスケジュールを記述することもできます。

ジョブ スケジュールの定義

cron ジョブは定期的な間隔でスケジュールされ、unix-cron 形式で指定されます。ジョブを 1 日に複数回実行するか、または具体的な日と月に実行するようにスケジュールを定義できます。

スケジュールは、unix-cron 文字列形式(* * * * *)を使用して記述されます。これは、1 行に 5 つの値のセットであり、ジョブを実行するタイミングを示します。

画像

Google Cloud Console、gcloud コマンドライン、または Cloud Scheduler REST APIを使用して、スケジュールを設定できます。

時間項目の形式と有効な値を次の表に示します。

項目 有効な値の形式
0-59
時間 0-23
1-31
1-12
曜日 0-6(日曜日から土曜日)

Cloud Console の [ジョブの作成]画面のプルダウンを使用するか、ジョブを作成するときにgcloud --time-zoneフラグを使用して、スケジュールを評価するタイムゾーンを選択できます。デフォルトのタイムゾーンはEtc/UTCです。

スケジュールの例

以下の表に、cron スケジュールの例とその説明を示します。

スケジュールの例 Cloud Scheduler の形式
1 分ごと * * * * *
毎週土曜日 23:45(午後 11:45) 45 23 * * 6
毎週月曜日の 9:00 0 9 * * 1

夏時間

一部のタイムゾーンでは、夏時間により、ジョブが予期しない周期で実行される可能性があります。これは、Cloud Scheduler が実時間で実行されるためです。ある時刻が 2 回発生する可能性があり(時計が逆方向に戻る場合など)、ジョブがこの時刻にスケジュールされている場合、スケジュールされたジョブで実行異常が発生することがあります。

ジョブで非常に特殊な周期が必要な場合は、夏時間のないタイムゾーンを選択することを検討してください。特に、この問題を完全に回避するために、Cloud Scheduler には UTC をお勧めします。