ジョブの実行を遅延させる

このページでは、ジョブの実行を遅延させる方法について説明します。遅延実行を使用すると、緊急性の低いタスクを最大 12 時間遅延させることができます。この機能を使用すると、ジョブは使用率の低い時間帯にプロビジョニングされ、料金が割引されます。詳細については、料金ページをご覧ください。

詳細は以下のとおりです。

  • 遅延ジョブの実行のプロビジョニングは最大 12 時間で、遅延ジョブの実行におけるすべてのタスクの合計実行時間は 12 時間です。これらの要件を組み合わせることで、遅延した実行が 24 時間以内に完了することが保証されます。
  • 上記を踏まえると、遅延ジョブのタスク タイムアウトの上限は 12 時間です。
  • 遅延ジョブの実行が最大期間制限に達すると、実行はシステムによってキャンセルされます。

通常のジョブと遅延ジョブ

すべての Cloud Run ジョブは、通常のジョブまたは遅延ジョブとして作成されます。

ジョブの作成方法に関係なく、他のタイプとして実行できます。詳しくは、以下をご覧ください。

料金

Cloud Run の遅延ジョブの料金の詳細については、Cloud Run の料金をご覧ください。

必要なロール

Cloud Run ジョブの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールCloud Run IAM 権限をご覧ください。Cloud Run ジョブがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限アクセスの管理をご覧ください。

遅延ジョブを作成する

デフォルトでは、新しいジョブを作成して実行すると、実行はできるだけ早く開始されます。

遅延ジョブ機能を使用すると、作成時点から遅延実行が組み込まれたジョブを作成できます。

コンソール

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. Cloud Run ナビゲーション メニューから [ジョブ] を選択し、[コンテナをデプロイ] をクリックして、[ジョブの作成] フォームを表示します。

    1. ジョブを作成するの説明に沿って、[ジョブを作成] フォームのフィールドに入力します。

    2. [実行を遅延] を選択して、実行を最大 12 時間遅延させます。

gcloud

--delay-execution フラグを使用してジョブを作成します。

gcloud beta run jobs create JOB_NAME \
  --image IMAGE_URL \
  --delay-execution \
  --region=REGION

ジョブを遅延ジョブとして作成した場合は、実行するために --delay-execution フラグを含める必要はありません。

gcloud beta run jobs execute JOB_NAME \
  --region=REGION

YAML

delayExecution 属性を true に設定して job.yaml を更新します。

apiVersion: run.googleapis.com/v1
kind: Job
metadata:
  name: JOB_NAME
spec:
  delayExecution: "true"

通常のジョブを遅延ジョブとして実行する

定期的なジョブを遅延ジョブとして実行するには:

コンソール

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 編集するジョブの名前をクリックします。

  3. [ジョブ構成の表示と編集] をクリックします。

  4. [遅延実行] を選択します。

  5. [更新] をクリックします。

gcloud

次のコマンドを実行します。

gcloud beta run jobs execute JOB_NAME \
  --async \
  --delay-execution \
  --region=REGION

YAML

delayExecution 属性が true に設定された job.yaml を更新します。

apiVersion: run.googleapis.com/v1
kind: Job
metadata:
  name: JOB_NAME
spec:
  delayExecution: "true"

遅延ジョブを通常のジョブとして実行する

遅延実行を無効にすると、ジョブは通常のジョブに更新されます。つまり、このジョブを次回実行するときは、できるだけ早く実行されます。

遅延実行を無効にするには:

コンソール

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 編集するジョブの名前をクリックします。

  3. [ジョブ構成の表示と編集] をクリックします。

  4. [実行の遅延] の選択を解除します。

  5. [更新] をクリックします。

gcloud

--no-delay-execution フラグを使用します。このフラグは update コマンドでも使用できます。通常のジョブにこのフラグを使用すると、ジョブが更新され、遅延実行が無効になります。

gcloud beta run jobs update JOB_NAME \
  --image IMAGE_URL \
  --no-delay-execution \
  --region=REGION

YAML

delayExecution 属性が false に設定された job.yaml を更新します。

apiVersion: run.googleapis.com/v1
kind: Job
metadata:
  name: JOB_NAME
spec:
  delayExecution: "false"

作成または更新時に遅延ジョブを実行する

--execute-now フラグを使用して遅延ジョブを作成すると、作成時に実行がトリガーされ、ジョブは次の 12 時間以内に実行されます。

作成または更新時に遅延ジョブを実行するには:

コンソール

  1. Google Cloud コンソールで、Cloud Run の [ジョブ] ページに移動します。

    Cloud Run の [ジョブ] に移動

  2. 既存の遅延ジョブがある場合は、ジョブをクリックしてジョブの詳細ページを表示し、[ジョブ構成の表示と編集] を選択します。新しい遅延ジョブを作成する場合は、[コンテナをデプロイ] を選択します。

  3. ページの下部に移動し、ジョブを作成または更新する前に [すぐにジョブを実行する] チェックボックスをオンにします。

gcloud

遅延ジョブを作成または更新するときに、--execute-now フラグを指定します。

  • ジョブの作成:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL \
      --delay-execution \
      --execute-now \
      --region=REGION
  • ジョブを更新する:

    gcloud run jobs update JOB_NAME \
      --execute-now \
      --region=REGION