Atrasar a execução de um job

Esta página descreve como atrasar a execução de um job. A execução atrasada permite adiar tarefas não urgentes por até 12 horas. Ao usar esse recurso, o job é provisionado durante uma janela de baixa utilização, em troca de um preço mais baixo. Consulte a página de preços para mais detalhes.

Especificamente:

  • O provisionamento de uma execução de job atrasada pode levar até 12 horas, e a duração total de todas as tarefas em uma execução de job atrasada é de 12 horas. Em combinação, esses requisitos garantem que uma execução atrasada seja concluída em 24 horas.
  • Dado o exposto acima, o limite de tempo limite da tarefa para um job atrasado é de 12 horas.
  • Quando a execução de um job atrasado atinge o limite máximo de duração, ela é cancelada pelo sistema.

Jobs regulares x jobs atrasados

Todo job do Cloud Run é criado como um job regular ou atrasado.

Independente de como o job foi criado, é possível executá-lo como o outro tipo. Para mais detalhes, consulte:

Preços

Para saber mais sobre os preços dos jobs atrasados do Cloud Run, consulte Preços do Cloud Run.

Funções exigidas

Para receber as permissões necessárias para criar jobs do Cloud Run, peça ao administrador para conceder as seguintes funções do IAM:

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o job do Cloud Run interage com Google Cloud APIs, como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Criar um job atrasado

Por padrão, quando você cria e executa um novo job, a execução começa o mais rápido possível.

Com o recurso de jobs atrasados, é possível criar um job que tenha execução atrasada integrada desde o momento da criação:

Console

  1. No Google Cloud console, acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Selecione Jobs no menu de navegação do Cloud Run e clique em Implantar contêiner para mostrar o formulário Criar job.

    1. Preencha os campos no formulário Criar job, conforme descrito em Criar jobs.

    2. Selecione Atrasar execução para adiar a execução em até 12 horas.

gcloud

Crie o job usando a flag --delay-execution:

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

Se você criou o job como um job atrasado, não é necessário incluir a flag --delay-execution para executá-lo:

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

YAML

Atualize o job.yaml com o atributo delayExecution definido como true:

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

Executar um job regular como um job atrasado

Para executar um job regular como um job atrasado:

Console

  1. No Google Cloud console, acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Clique no nome do job que você quer editar.

  3. Clique em Ver e editar a configuração do job.

  4. Selecione Execução atrasada.

  5. Clique em Atualizar.

gcloud

Execute este comando:

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

YAML

Atualize o job.yaml com o atributo delayExecution definido como true:

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

Executar um job atrasado como um job regular

Quando você desativa a execução atrasada, o job é atualizado para ser um job regular. Isso significa que, na próxima vez que você executar esse job, ele será executado o mais rápido possível.

Para desativar a execução atrasada:

Console

  1. No Google Cloud console, acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Clique no nome do job que você quer editar.

  3. Clique em Ver e editar a configuração do job.

  4. Desmarque Execução atrasada.

  5. Clique em Atualizar.

gcloud

Use a flag --no-delay-execution. Também é possível usar essa flag com os comandos update. Se você usar essa flag para um job regular, ela atualizará o job para desativar a execução atrasada.

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

YAML

Atualize o job.yaml com o atributo delayExecution definido como false:

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

Executar um job atrasado na criação ou atualização

Quando você cria um job atrasado com a flag --execute-now, ele aciona a execução na criação e o job é executado em algum momento nas próximas 12 horas.

Para executar um job atrasado na criação ou atualização:

Console

  1. No Google Cloud console, acesse a página Jobs do Cloud Run:

    Acessar jobs do Cloud Run

  2. Se você tiver um job atrasado, clique nele para mostrar a página de detalhes do job e selecione Ver e editar a configuração do job. Se você estiver criando um novo job atrasado, selecione Implantar contêiner.

  3. Acesse a parte de baixo da página e marque a caixa Executar job imediatamente antes de criar ou atualizar o job.

gcloud

Especifique a --execute-now flag ao criar ou atualizar um job atrasado:

  • Criar um job:

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

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