Retarder l'exécution d'un job

Cette page explique comment différer l'exécution d'un job. L'exécution différée vous permet de reporter des tâches non urgentes pendant une durée maximale de 12 heures. Lorsque vous utilisez cette fonctionnalité, votre job est provisionné pendant une période de faible utilisation, en échange d'un prix inférieur. Pour en savoir plus, consultez la page Tarifs.

Plus spécifiquement :

  • Le provisionnement d'une exécution de job différée peut durer jusqu'à 12 heures, et la durée totale d'exécution de toutes les tâches d'une exécution de job différée est de 12 heures. Combinées, ces exigences garantissent qu'une exécution différée sera terminée dans les 24 heures.
  • Compte tenu de ce qui précède, la limite de délai d'attente des tâches pour un job différé est de 12 heures.
  • Lorsque l'exécution d'un job différé a atteint la limite de durée maximale, elle est annulée par le système.

Jobs réguliers et jobs différés

Chaque job Cloud Run est créé en tant que job régulier ou différé.

Quel que soit le mode de création du job, vous pouvez l'exécuter comme l'autre type. Pour en savoir plus, consultez les pages suivantes :

Tarifs

Pour en savoir plus sur les tarifs des jobs Cloud Run différés, consultez Tarifs de Cloud Run.

Rôles requis

Pour obtenir les autorisations nécessaires à la création de jobs Cloud Run, demandez à votre administrateur de vous attribuer les rôles IAM suivants :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre job Cloud Run communique avec Google Cloud des API, telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.

Créer un job différé

Par défaut, lorsque vous créez et exécutez un job, l'exécution démarre dès que possible.

Avec la fonctionnalité de jobs différés, vous pouvez créer un job dont l'exécution est différée dès sa création :

Console

  1. Dans la Google Cloud console, accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Sélectionnez Jobs dans le menu de navigation Cloud Run, puis cliquez sur Déployer un conteneur pour afficher le formulaire Créer un job.

    1. Remplissez les champs du formulaire Créer un job, comme décrit dans Créer des jobs.

    2. Sélectionnez Différer l'exécution pour reporter l'exécution jusqu'à 12 heures.

gcloud

Créez le job à l'aide de l'option --delay-execution :

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

Si vous avez créé votre job en tant que job différé, vous n'avez pas besoin d'inclure l'option --delay-execution pour l'exécuter :

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

YAML

Mettez à jour votre job.yaml avec l'attribut delayExecution défini sur true :

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

Exécuter un job régulier en tant que job différé

Pour exécuter un job régulier en tant que job différé :

Console

  1. Dans la Google Cloud console, accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur le nom du job que vous souhaitez modifier.

  3. Cliquez sur Afficher et modifier la configuration du job.

  4. Sélectionnez Exécution différée.

  5. Cliquez sur Mettre à jour.

gcloud

Exécutez la commande suivante :

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

YAML

Mettez à jour votre job.yaml avec l'attribut delayExecution défini sur true :

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

Exécuter un job différé en tant que job régulier

Lorsque vous désactivez l'exécution différée, le job est mis à jour pour devenir un job régulier. Cela signifie que la prochaine fois que vous exécuterez ce job, il s'exécutera dès que possible.

Pour désactiver l'exécution différée :

Console

  1. Dans la Google Cloud console, accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur le nom du job que vous souhaitez modifier.

  3. Cliquez sur Afficher et modifier la configuration du job.

  4. Désélectionnez Exécution différée.

  5. Cliquez sur Mettre à jour.

gcloud

Utilisez l'option --no-delay-execution. Vous pouvez également utiliser cette option avec les commandes update. Si vous utilisez cette option pour un job régulier, elle met à jour le job pour désactiver l'exécution différée.

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

YAML

Mettez à jour votre job.yaml avec l'attribut delayExecution défini sur false :

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

Exécuter un job différé lors de sa création ou de sa mise à jour

Lorsque vous créez un job différé avec l'option --execute-now, l'exécution est déclenchée lors de la création et le job s'exécute à un moment donné au cours des 12 heures suivantes.

Pour exécuter un job différé lors de sa création ou de sa mise à jour :

Console

  1. Dans la Google Cloud console, accédez à la page Jobs de Cloud Run :

    Accédez aux jobs Cloud Run

  2. Si vous disposez d'un job différé existant, cliquez dessus pour afficher la page des détails du job, puis sélectionnez Afficher et modifier la configuration du job. Si vous créez un job différé, sélectionnez Déployer un conteneur.

  3. Accédez au bas de la page et cochez la case Exécuter le job immédiatement avant de créer ou de mettre à jour le job.

gcloud

Spécifiez l'option --execute-now lorsque vous créez ou mettez à jour un job différé :

  • Créer un job :

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

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