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