Retrasa la ejecución de un trabajo

En esta página, se describe cómo retrasar la ejecución de un trabajo. La ejecución retrasada te permite diferir tareas no urgentes hasta una duración máxima de 12 horas. Cuando usas esta función, tu trabajo se aprovisiona durante un período de uso bajo, a cambio de un precio más bajo. Consulta la página de precios para obtener más detalles.

En particular, haz lo siguiente:

  • El aprovisionamiento de una ejecución de trabajo retrasada puede tardar hasta 12 horas, y la duración total del tiempo de ejecución de todas las tareas en una ejecución de trabajo retrasada es de 12 horas. En combinación, estos requisitos garantizan que una ejecución retrasada se completará en un plazo de 24 horas.
  • Dado lo anterior, el límite de tiempo de espera de la tarea para un trabajo retrasado es de 12 horas.
  • Cuando la ejecución de un trabajo retrasado alcanza el límite de duración máxima, el sistema la cancela.

Trabajos regulares en comparación con trabajos retrasados

Cada trabajo de Cloud Run se crea como un trabajo regular o un trabajo retrasado.

Independientemente de cómo se creó el trabajo, puedes ejecutarlo como el otro tipo. Para obtener más detalles, consulta lo siguiente:

Precios

Para obtener más información sobre los precios de los trabajos retrasados de Cloud Run, consulta Precios de Cloud Run.

Roles obligatorios

Para obtener los permisos que necesitas para crear los trabajos de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu trabajo de Cloud Run interactúa con Google Cloud las APIs, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta permisos de implementación y administra el acceso.

Crea un trabajo retrasado

De forma predeterminada, cuando creas y ejecutas un trabajo nuevo, la ejecución comienza lo antes posible.

Con la función de trabajos retrasados, puedes crear un trabajo que tenga una ejecución retrasada integrada desde el punto de creación:

Console

  1. En la Google Cloud consola, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Selecciona Trabajos en el menú de navegación de Cloud Run y haz clic en Implementar contenedor para mostrar el formulario Crear trabajo.

    1. Completa los campos del formulario Crear trabajo, como se describe en Crea trabajos.

    2. Selecciona Retrasar ejecución para diferir la ejecución hasta 12 horas.

gcloud

Crea el trabajo con la marca --delay-execution:

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

Si creaste tu trabajo como un trabajo retrasado, no necesitas incluir la marca --delay-execution para ejecutarlo:

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

YAML

Actualiza tu job.yaml con el atributo delayExecution establecido en true:

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

Ejecuta un trabajo regular como un trabajo retrasado

Para ejecutar un trabajo regular como un trabajo retrasado, haz lo siguiente:

Console

  1. En la Google Cloud consola, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Haz clic en el nombre del trabajo que deseas editar.

  3. Haz clic en Ver y editar la configuración del trabajo.

  4. Selecciona Ejecución retrasada.

  5. Haz clic en Actualizar.

gcloud

Ejecuta el siguiente comando:

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

YAML

Actualiza tu job.yaml con el atributo delayExecution establecido en true:

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

Ejecuta un trabajo retrasado como un trabajo regular

Cuando inhabilitas la ejecución retrasada, el trabajo se actualiza para que sea un trabajo regular. Esto significa que la próxima vez que ejecutes este trabajo, se ejecutará lo antes posible.

Para inhabilitar la ejecución retrasada, haz lo siguiente:

Console

  1. En la Google Cloud consola, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Haz clic en el nombre del trabajo que deseas editar.

  3. Haz clic en Ver y editar la configuración del trabajo.

  4. Anula la selección de Ejecución retrasada.

  5. Haz clic en Actualizar.

gcloud

Usa la marca --no-delay-execution. También puedes usar esta marca con los comandos update. Si usas esta marca para un trabajo regular, se actualiza el trabajo para inhabilitar la ejecución retrasada.

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

YAML

Actualiza tu job.yaml con el atributo delayExecution establecido en false:

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

Ejecuta un trabajo retrasado cuando se crea o actualiza

Cuando creas un trabajo retrasado con la marca --execute-now, se activará la ejecución en la creación y el trabajo se ejecutará en algún momento en las próximas 12 horas.

Para ejecutar un trabajo retrasado cuando se crea o actualiza, haz lo siguiente:

Console

  1. En la Google Cloud consola, ve a la página Trabajos de Cloud Run:

    Ir a Trabajos de Cloud Run

  2. Si tienes un trabajo retrasado existente, haz clic en el trabajo para mostrar la página de detalles del trabajo y, luego, selecciona Ver y editar la configuración del trabajo. Si creas un trabajo retrasado nuevo, selecciona Implementar contenedor.

  3. Ve a la parte inferior de la página y marca la casilla Ejecutar trabajo de inmediato antes de crear o actualizar el trabajo.

gcloud

Especifica la --execute-now marca cuando crees o actualices un trabajo retrasado:

  • Crea un trabajo:

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

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