延後執行工作

本頁說明如何延後執行工作。延遲執行作業可讓您將非緊急工作延後最多 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 用戶端程式庫) 介接,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。

建立延遲工作

根據預設,當您建立及執行新工作時,系統會盡快開始執行。

使用延遲工作功能,您可以建立內建延遲執行的工作:

控制台

  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

job.yamldelayExecution 屬性設為 true,藉此更新 :

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. 按一下「Update」

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. 按一下「Update」

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「Jobs」頁面:

    前往 Cloud Run jobs

  2. 如果您有現有的延遲工作,請按一下該工作,顯示工作詳細資料頁面,然後選取「查看及編輯工作設定」。如要建立新的延遲工作,請選取「Deploy container」(部署容器)

  3. 前往頁面底部,然後勾選「Execute job immediately」(立即執行工作) 方塊,再建立或更新工作。

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