Cloud Scheduler について

Cloud Scheduler では、作業単位のスケジュールを設定して、定義した回数または一定の間隔で実行できます。これらの作業単位は、一般的に cron ジョブと呼ばれています。代表的な使い方としては、レポートメールを毎日送信する、10 分間隔でキャッシュ データを更新する、1 時間に 1 回要約情報を更新する、などがあります。

Cloud Scheduler を使用して作成された各 cron ジョブは、指定のスケジュールに従ってターゲットに送信されます。ターゲットはタスクが処理される場所です。ターゲットは、次のいずれかのタイプでなければなりません。

Cloud Scheduler は、「1 回以上」を基本に処理を行うよう設計されています。つまり、ジョブはスケジュールされた実行ごとに少なくとも 1 回実行されます。まれに、1 つのスケジュールのインスタンスに関連付けられたジョブが複数回実行される可能性があるため、繰り返し実行されても有害な副作用が生じないように注意してください。ターゲットは べき等である必要があります。

cron ジョブは、Cloud Console または gcloud コマンドライン ツールのいずれかを使用して作成できます。

ターゲットでサポートされているリージョン

ターゲットが HTTP/S エンドポイント または Pub/Sub トピック の場合、 Cloud Scheduler は、Cloud Scheduler でサポートされているすべての Google Cloud リージョンで利用できます。

ターゲットが現在のプロジェクト内にある App Engine アプリケーション の場合:

  • App Engine をターゲットとする Cloud Scheduler ジョブは、プロジェクトの App Engine リージョンでのみ 作成できます。

  • プロジェクトには 1 つの App Engine アプリのみを含めることができます。App Engine アプリの作成後には、アプリが配置されているリージョンは変更できません。 Google Cloud

  • App Engine はリージョンの影響を受けます。つまり、アプリを実行するインフラストラクチャは特定のリージョンに配置されています。 コンピューティングとジョブを複数のリージョンに分散する場合は、代わりに HTTP/S エンドポイントまたは Pub/Sub トピックをターゲットにする必要があります。

  • App Engine をターゲットとして使用していない場合、App Engine アプリをデプロイする必要はなく、既存の App Engine アプリを無効にできます。

ジョブの再試行ポリシー

Cloud Scheduler ジョブが正常に完了せず、ジョブ ハンドラから確認応答が受信されない場合、構成された再試行ポリシーに従って指数バックオフで再試行されます。

再試行動作を決定する設定を構成できます。詳細については、ジョブを再試行するをご覧ください。

ジョブ リクエストの重複排除

Cloud Scheduler には、ジョブ リクエストの重複排除を行ううえで有用な ヘッダー が用意されているため、リクエスト ハンドラを べき等にすることができます。ジョブ リクエストは、その名前と X-CloudScheduler-ScheduleTime ヘッダーを使用して一意に識別できます。このヘッダーには、元のスケジュールされた呼び出し時刻が含まれており、再試行しても一定です。