Com o Cloud Scheduler, é possível definir a execução de unidades programadas de trabalho em horários definidos ou em intervalos regulares. Essas unidades são conhecidas como cron jobs. Os casos de uso típicos incluem o envio de relatórios diários por e-mail, a atualização de dados armazenados em cache a cada 10 minutos ou a atualização de informações de resumo a cada hora.
Cada cron job criado usando o Cloud Scheduler é enviado para um destino de acordo com uma programação especificada, em que o trabalho da tarefa é realizado. O destino precisa ser um destes tipos:
- pontos de extremidade HTTP/S
- Tópicos do Pub/Sub
- Aplicativos HTTP/S do App Engine
O Cloud Scheduler foi projetado para fornecer entrega pelo menos uma vez. Ou seja, o job será executado pelo menos uma vez por execução programada. Em algumas circunstâncias raras, é possível que um job seja executado várias vezes em associação com uma única instância da programação. Portanto, seu código precisa garantir que não haja efeitos colaterais prejudiciais da execução repetida. Os destinos precisam ser idempotentes.
É possível criar cron jobs usando o Console do Cloud ou a ferramenta de linha de comando gcloud.
Regiões com disponibilidade por destino
Se o destino for um endpoint HTTP/S ou um tópico do Pub/Sub, o Cloud Scheduler estará disponível em todas as regiões Google Cloud compatíveis com o Cloud Scheduler.
Se o destino for um aplicativo do App Engine localizado no projeto atual:
Um job do Cloud Scheduler que segmenta o App Engine só pode ser criado na região do App Engine do projeto.
Um projeto do Google Cloud pode conter apenas um aplicativo do App Engine, e a região em que o aplicativo do App Engine está localizado não pode ser alterada depois que o aplicativo é criado.
O App Engine é regional, o que significa que a infraestrutura que executa seu aplicativo está localizada em uma região específica. Se você quiser distribuir computação e jobs em várias regiões, segmente um endpoint HTTP/S ou um tópico do Pub/Sub.
Se você não estiver usando o App Engine como destino, não será necessário implantar um aplicativo do App Engine, e será possível desativar qualquer aplicativo do App Engine.
Política de repetição de jobs
Se um job do Cloud Scheduler não for concluído com sucesso e uma confirmação não for recebida do gerenciador de jobs, ele será repetido com uma espera exponencial de acordo com a política de repetição configurada.
É possível definir as configurações que determinam o comportamento de repetição. Para mais informações, consulte Repetir jobs.
Eliminação de duplicação de solicitações de job
O Cloud Scheduler oferece entrega pelo menos uma vez. Solicitações de job duplicadas para a mesma execução programada podem ocorrer se um destino demorar mais para responder do que o prazo de tentativa do job (attemptDeadline) ou se uma interrupção temporária de rede impedir que o Cloud Scheduler receba a confirmação HTTP 2xx.
Para tornar o gerenciador de jobs idempotente e eliminar a duplicação de solicitações repetidas, use os cabeçalhos HTTP X-CloudScheduler-JobName e X-CloudScheduler-ScheduleTime que o Cloud Scheduler inclui nas solicitações. Para mais
informações, consulte
Eliminar a duplicação de solicitações de job.