Ritardare l'esecuzione di un job

Questa pagina descrive come ritardare l'esecuzione di un job. L'esecuzione ritardata ti consente di posticipare le attività non urgenti fino a una durata massima di 12 ore. Quando utilizzi questa funzionalità, il job viene sottoposto a provisioning durante una finestra di basso utilizzo, in cambio di un prezzo inferiore. Per i dettagli, consulta la pagina dei prezzi.

In particolare:

  • Il provisioning di un'esecuzione di job ritardata può richiedere fino a 12 ore e la durata totale di runtime di tutte le attività in un'esecuzione di job ritardata è di 12 ore. In combinazione, questi requisiti garantiscono che un'esecuzione ritardata venga completata entro 24 ore.
  • Tenendo conto di quanto sopra, il limite di timeout delle attività per un job ritardato è di 12 ore.
  • Quando l'esecuzione di un job ritardato ha raggiunto il limite di durata massima, viene annullata dal sistema.

Job normali e job ritardati

Ogni job Cloud Run viene creato come job normale o job ritardato.

Indipendentemente da come è stato creato il job, puoi eseguirlo come l'altro tipo. Per i dettagli, consulta:

Prezzi

Per saperne di più sui prezzi dei job ritardati di Cloud Run, consulta la pagina Prezzi di Cloud Run.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare job Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo job Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Creare un job ritardato

Per impostazione predefinita, quando crei ed esegui un nuovo job, l'esecuzione inizia il prima possibile.

Con la funzionalità dei job ritardati, puoi creare un job con l'esecuzione ritardata integrata dal momento della creazione:

Console

  1. Nella Google Cloud console, vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Seleziona Job dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per visualizzare il modulo Crea job.

    1. Compila i campi del modulo Crea job come descritto in Creare job.

    2. Seleziona Ritarda esecuzione per posticipare l'esecuzione fino a 12 ore.

gcloud

Crea il job utilizzando il flag --delay-execution:

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

Se hai creato il job come job ritardato, non devi includere il flag --delay-execution per eseguirlo:

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

YAML

Aggiorna job.yaml con l'attributo delayExecution impostato su true:

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

Eseguire un job normale come job ritardato

Per eseguire un job normale come job ritardato:

Console

  1. Nella Google Cloud console, vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul nome del job che vuoi modificare.

  3. Fai clic su Visualizza e modifica la configurazione del job.

  4. Seleziona Esecuzione ritardata.

  5. Fai clic su Aggiorna.

gcloud

Esegui questo comando:

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

YAML

Aggiorna job.yaml con l'attributo delayExecution impostato su true:

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

Eseguire un job ritardato come job normale

Quando disattivi l'esecuzione ritardata, il job viene aggiornato in modo da diventare un job normale. Ciò significa che la prossima volta che esegui questo job, verrà eseguito il prima possibile.

Per disattivare l'esecuzione ritardata:

Console

  1. Nella Google Cloud console, vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul nome del job che vuoi modificare.

  3. Fai clic su Visualizza e modifica la configurazione del job.

  4. Deseleziona Esecuzione ritardata.

  5. Fai clic su Aggiorna.

gcloud

Utilizza il flag --no-delay-execution. Puoi utilizzare questo flag anche con i comandi update. Se utilizzi questo flag per un job normale, il job viene aggiornato per disattivare l'esecuzione ritardata.

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

YAML

Aggiorna job.yaml con l'attributo delayExecution impostato su false:

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

Eseguire un job ritardato durante la creazione o l'aggiornamento

Quando crei un job ritardato con il flag --execute-now, l'esecuzione viene attivata al momento della creazione e il job verrà eseguito entro le prossime 12 ore.

Per eseguire un job ritardato al momento della creazione o dell'aggiornamento:

Console

  1. Nella Google Cloud console, vai alla pagina Job di Cloud Run:

    Vai ai job Cloud Run

  2. Se hai un job ritardato esistente, fai clic sul job per visualizzare la pagina dei dettagli del job, quindi seleziona Visualizza e modifica la configurazione del job. Se stai creando un nuovo job ritardato, seleziona Esegui il deployment del container.

  3. Vai in fondo alla pagina e seleziona la casella Esegui il job immediatamente prima di creare o aggiornare il job.

gcloud

Specifica il --execute-now flag quando crei o aggiorni un job ritardato:

  • Creare un job:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL \
      --delay-execution \
      --execute-now \
      --region=REGION
  • Aggiornare un job:

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