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:
- Sviluppatore Cloud Run (
roles/run.developer) sul job Cloud Run - Utente account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio - Artifact Registry Reader (
roles/artifactregistry.reader) sul repository Artifact Registry delle immagini container del job
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
Nella Google Cloud console, vai alla pagina Cloud Run:
Seleziona Job dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per visualizzare il modulo Crea job.
Compila i campi del modulo Crea job come descritto in Creare job.
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
Nella Google Cloud console, vai alla pagina Cloud Run:
Fai clic sul nome del job che vuoi modificare.
Fai clic su Visualizza e modifica la configurazione del job.
Seleziona Esecuzione ritardata.
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
Nella Google Cloud console, vai alla pagina Cloud Run:
Fai clic sul nome del job che vuoi modificare.
Fai clic su Visualizza e modifica la configurazione del job.
Deseleziona Esecuzione ritardata.
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
Nella Google Cloud console, vai alla pagina Job di Cloud Run:
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.
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