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 をお勧めします。