Skip to content

Torvyn

Obter Atualização

  • Lar
  • criptomoeda
  • Lei Educacional
  • Esportes
  • Tecnologia
  • Realidade Virtual
  • Mais
    • Sobre nós
    • Contate-nos
    • Isenção de responsabilidade
    • política de Privacidade
    • Termos e Condições
  • Toggle search form
Um guia para iniciantes para executar tarefas para a conclusão em um cronograma

Um guia para iniciantes para executar tarefas para a conclusão em um cronograma

Posted on May 6, 2025 By Rehan No Comments on Um guia para iniciantes para executar tarefas para a conclusão em um cronograma

Com o Cloud Run, basta trazer seu código! O Google lida com as coisas complexas de servidor e escala, para que você não precise. Normalmente, você pode executar apenas serviços da Web com um URL no Google Cloud Run como serviços. Por algum tempo, você também pode executar trabalhos em nuvem para executar uma tarefa até a conclusão, o que pode levar mais de minutos ou até horas. Nesta postagem para iniciantes, você aprenderá como executar empregos em nuvem de execução em um cronograma. Vamos ir!

Um guia para iniciantes para executar tarefas para a conclusão em um cronograma

Índice #

Trabalhos de corrida em nuvem #

Diferentemente dos serviços do Google Cloud Run, que são executados quando um servidor da Web recebe uma solicitação da Web (como um GET ou POST), Trabalhos de corrida em nuvem são projetados especificamente para tarefas que precisam ser executadas, executam algum trabalho e terminam depois que esse trabalho estiver concluído. Eles não ouvem solicitações de entrada como os serviços.

Os trabalhos de corrida em nuvem são orientados a tarefas, executando um trabalho específico, como raspar um site, converter uma fatura em PDF em registros de banco de dados, tirar uma captura de tela, ajustar um LLM ou redimensionar imagens. Eles não precisam de um servidor da web e podem ser acionados de maneira única, em um horário específico (como 2 da manhã todas as manhãs) ou como um papel de um Fluxo de trabalho do GCP. Esses trabalhos são concluídos e podem executar até 10.000 tarefas em paralelo. As tarefas têm um número de índice e uma contagem de execuções; As tarefas também podem ser configuradas para tentar novamente.

Em essência, se você possui uma tarefa de contêiner que precisa ser executada periodicamente, sob demanda ou parte de um fluxo de trabalho e conclua seu trabalho sem servir solicitações e, em seguida, desligar, os trabalhos de execução em nuvem são uma opção sem servidor adequada no Google Cloud.

Como a nuvem Run Jobs lida com tarefas paralelas #

Um dos recursos poderosos dos trabalhos em nuvem é sua capacidade de lidar com a execução de tarefas paralelas. Isso é particularmente útil para cargas de trabalho de processamento de lote, onde você pode dividir o trabalho em pedaços independentes que podem ser processados ​​simultaneamente. Você pode executar até 1.000 empregos por projeto por região, conforme descrito na corrida da nuvem cotas.

Quando você define um trabalho de corrida em nuvem, você pode especificar o parallelism contexto. Essa configuração determina o número máximo de instâncias de tarefas que podem ser executadas simultaneamente dentro de uma única execução de emprego.

Imagine que você tem um trabalho que requer processamento de 100 itens e seu contêiner foi projetado para processar um item por vez. Se você definir parallelism Para 10, quando você executa o trabalho, os trabalhos da Cloud Run tentarão executar até 10 instâncias de tarefas simultaneamente. Cada instância da tarefa receberá informações sobre quais itens específicos devem processar.

Como uma instância de tarefa sabe qual parte do trabalho fazer? O Cloud Run Jobs fornece variáveis ​​de ambiente para cada instância de tarefa:

  • CLOUD_RUN_TASK_INDEX: Esta variável fornece um índice exclusivo para cada instância de tarefa em uma execução de emprego, começando de 0 a parallelism - 1.
  • CLOUD_RUN_TASK_COUNT: Esta variável fornece o número total de instâncias de tarefas esperadas para esta execução de emprego, que é igual ao parallelism contexto.

O código do seu contêiner pode ler essas variáveis ​​de ambiente para determinar sua fatia específica do trabalho. Por exemplo, se você tiver 100 itens para processar e parallelism está definido como 10, a instância da tarefa 0 pode processar os itens 1-10, a instância da tarefa 1 processa os itens 11-20 e assim por diante, até a instância da tarefa 9 Processando itens 90-100. Seu código usaria CLOUD_RUN_TASK_INDEX e CLOUD_RUN_TASK_COUNT Para calcular o intervalo de itens pelos quais é responsável.

Os trabalhos da Cloud Run gerenciam o ciclo de vida dessas instâncias de tarefas. Se uma instância de tarefa falhar (por exemplo, devido a um erro no seu código ou a um problema temporário de infraestrutura), os trabalhos de execução em nuvem poderão ser configurados para tentar novamente essa instância de tarefa específica até um número especificado de vezes. Isso garante que, mesmo que algumas partes do seu lote falhem, a execução geral do trabalho ainda poderá ser concluída com sucesso, novamente novamente, repetindo as tarefas com falha.

A capacidade de executar tarefas em paralelo acelera significativamente a execução de cargas de trabalho em lote. Em vez de processar 100 itens sequencialmente em um contêiner, você pode processá -los simultaneamente em vários contêineres, o que reduz drasticamente o tempo total necessário para a execução do trabalho. Isso é semelhante a ter vários trabalhadores que enfrentam diferentes partes de um grande projeto simultaneamente, em vez de ter um trabalhador completando tudo passo a passo.

Por padrão, cada tarefa é executada por um máximo de 10 minutos. Você pode modificar o valor padrão alterando a configuração do tempo limite da tarefa, até um máximo de 168 horas (7 dias). O suporte a tempos limite superior a 24 horas está disponível na visualização.

Exemplo simples de trabalho em nuvem #

Este tutorial se concentra em aprender a criar e executar trabalhos do Google Cloud Run na Google Cloud Platform (GCP). O exemplo de código que você usará é o Node.JS QuickStart Official para trabalhos em nuvem.

Você vai usar o gcloud Comando da CLI sobre o Google Cloud Shell para fazer a maior parte do trabalho, e você não precisará instalar nada na sua máquina local. Vamos começar!

O principal index.js O arquivo tem o seguinte conteúdo:


const {CLOUD_RUN_TASK_INDEX = 0, CLOUD_RUN_TASK_ATTEMPT = 0} = process.env;
const {SLEEP_MS, FAIL_RATE} = process.env;


const main = async () => {
console.log(
`Starting Task #${CLOUD_RUN_TASK_INDEX}, Attempt #${CLOUD_RUN_TASK_ATTEMPT}...`
);
if (SLEEP_MS) {
await sleep(SLEEP_MS);
}
if (FAIL_RATE) {
try {
randomFailure(FAIL_RATE);
} catch (err) {
err.message = `Task #${CLOUD_RUN_TASK_INDEX}, Attempt #${CLOUD_RUN_TASK_ATTEMPT} failed.\n\n${err.message}`;
throw err;
}
}
console.log(`Completed Task #${CLOUD_RUN_TASK_INDEX}.`);
};


const sleep = ms => {
return new Promise(resolve => setTimeout(resolve, ms));
};


const randomFailure = rate => {
rate = parseFloat(rate);
if (!rate || rate < 0 || rate > 1) {
console.warn(
`Invalid FAIL_RATE env var value: ${rate}. Must be a float between 0 and 1 inclusive.`
);
return;
}

const randomFailure = Math.random();
if (randomFailure < rate) {
throw new Error('Task failed.');
}
};


main().catch(err => {
console.error(err);
process.exit(1);
});

As principais coisas que você precisa entender aqui são:

  • O script é executado com o main Ligue para a linha não. 49, que tem uma captura presa a ele. Teria sido mais fácil com um JavaScript Tente capturar Block, mas este é o exemplo oficial. Então, vamos apenas rolar com isso.
  • Antes do main função na linha 7, quatro variáveis ​​ambientais são retiradas do process.env com destruição de objetos. Esses são CLOUD_RUN_TASK_INDEX e CLOUD_RUN_TASK_ATTEMPTque são usados ​​para determinar a posição da tarefa dentro do trabalho e a tentativa de repetição (se o trabalho falhar).
  • Os outros dois são SLEEP_MS e FAIL_RATEque são usados ​​para dormir para um determinado número de milissegundos e especificar a taxa de falha como uma porcentagem, respectivamente. Por exemplo, 0.1 representa 10% e 1.0 representa 100%, o que nunca funcionará.
  • A principal tarefa (no trabalho é o main função), que registra o número da tarefa e as tentativas primeiro.
  • Em seguida, aguarda os milissegundos especificados e, em seguida, randomiza a falha de acordo com a taxa de falha.
  • Por fim, ele registra o índice das tarefas computadas.
  • Abaixo disso, há um sleep Funcionar apenas bloquear o processo e aguardar o número especificado de milissegundos.

Em seguida, você verá como adicioná -lo como um trabalho em nuvem usando o shell do Google Cloud.

Crie um trabalho em nuvem usando o Google Cloud Shell #

Para começar, você precisará de algum conhecimento do GIT, GitHub e Google Cloud Shell.

Dado que você está conectado à sua conta do Google. Primeiro, você criará um novo projeto do Google Cloud sobre este página. Você pode nomear cloud-run-jobs Como visto abaixo:

Crie um projeto GCP chamado Cloud-Run-Jobs e copie o ID do projeto

Certifique -se de copiar o Project IDcomo você precisará mais tarde e depois clicar no Create botão no final do formulário. Levará alguns minutos e você será levado para o painel do novo projeto da seguinte maneira:

Selecione o projeto GCP chamado Cloud-Run-Jobs

Verifique se o projeto criado recentemente está selecionado; Como alternativa, você pode clicar Select Project da mensagem de notificação.

Depois disso, clique no Cloud Shell O ícone além do ícone da campainha no canto superior direito (ou pressione G e S, no teclado). O Shell Cloud aparecerá na parte inferior da tela e pedirá permissão. Clique Authorize:

Open Cloud Shell e autorizá -lo no console GCP

No shell, digite (ou copie e cole) o seguinte comando:

mkdir projects && cd projects && git clone https://github.com/geshan/cloud-run-jobs.git && cd cloud-run-jobs

O comando criará um diretório chamado Projetos, entrará nessa pasta e clonará o repositório de demonstração com o código acima e entrará no cloud-run-jobs Pasta do repositório da seguinte forma:

Crie Projects Directory e Clone Project nele, depois entre no diretório de jobs da nuvem-run-jobs

Depois disso, defina a variável de identificação do projeto para a variável que você copiou ao criar o projeto (ou copiá -lo do seu Google Cloud CLI), deve parecer cloud-run-jobs-que no meu caso foi cloud-run-jobs-458310. O comando está abaixo:

export PROJECT_ID=cloud-run-jobs-<some-numbers-here-replace-this> && echo $PROJECT_ID

Agora, para criar o trabalho de corrida em nuvem depois de construir a partir da fonte com um pacote de construção (não usando um contêiner do docker), execute o seguinte comando no seu shell do Google Cloud:

gcloud run jobs deploy job-quickstart \
--source . \
--tasks 5 \
--set-env-vars SLEEP_MS=5000 \
--set-env-vars FAIL_RATE=0.1 \
--max-retries 3 \
--region us-central1 \
--project=$PROJECT_ID

Aqui você está pedindo ao comando do Google Cloud para criar um trabalho em nuvem chamado job-quickstart onde o código é retirado do diretório local .. Você está especificando que o trabalho possui cinco tarefas e dormirá por 5 segundos (5000 milissegundos) com uma taxa de falha de 10% (0,1) e pode ser tentado até 3 vezes na falha.

Para a região que você está usando us-central1e o ID do projeto é o mesmo que você define no comando anterior. Parece o abaixo quando ele executa:

Implementar trabalhos de execução em nuvem com o ID do projeto como uma variável usando o comando gcloud

Ele pedirá que você ative APIs, acerte Y Para ativar todas as APIs relacionadas, como visto abaixo:

Concorde em habilitar APIs enquanto implanta empregos em nuvem usando o comando gcloud

Se você encontrar um erro, pode ser porque as APIs exigem algum tempo para se tornar ativado. Então, tente novamente depois de alguns minutos. Quando funcionar, será algo como o seguinte:

Implantando em nuvem Jobs usando o comando gcloud - fase de construção

Levará alguns minutos para que o código seja copiado para um balde e depois criado com pacotes de construção no Google Cloud Build. Se você deseja seguir o processo de compilação, pode abrir o URL visível em uma nova guia do navegador, o TI ficará assim:

Implantando empregos em nuvem usando o comando gcloud - google cloud construir logs

Quando for bem -sucedido, mostrará algo como o seguinte:

Empregos em nuvem implantados usando o comando gcloud

Neste ponto, procure por Cloud Run e clique no primeiro resultado:

Search Cloud Run na barra de pesquisa do Google Cloud Console

Depois disso, clique no Jobs Tab, e você verá o seu trabalho de corrida em nuvem foi criado:

Guia de empregos em nuvem com corrida com trabalho criado recentemente

Mas esse trabalho nunca foi executado, para executar o trabalho sob demanda, execute gcloud run jobs execute job-quickstart --region=us-central1 No Google Cloud Console, como visto abaixo:

Trabalhos de corrida em nuvem pendentes depois de fugir da Shell Cloud

Você verá o trabalho executado. Se você clicar Running E espere que a tarefa seja executada, você verá que todas as cinco tarefas no trabalho foram executadas com sucesso:

Trabalhos de corrida em nuvem pendentes de corrida após serem desencadeados da nuvem shell

Você também pode visualizar os logs de cada tarefa, se quiser:

Em nuvem, os empregos com sucesso após serem desencadeados da nuvem Shell

Crie um cronograma de trabalho com o Google Cloud Scheduler #

Para executar empregos em um cronograma, siga o guiaque descreve o processo de agendar trabalhos usando o Google Cloud Scheduler.

Isso pode ser feito executando o seguinte comando no Google Cloud Shell para executar o trabalho a cada 15 minutos:

gcloud scheduler jobs create http quickstart-schedule \
--location us-central1 \
--schedule="*/15 * * * *" \
--uri="https://us-central1-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/cloud-run-jobs-458310/jobs/job-quickstart:run" \
--http-method POST \
--oauth-service-account-email 944865726665[email protected]

Você pode encontrar o número do projeto na página do painel do projeto, você precisará modificar o comando no seu ID e número do projeto. Parece o abaixo quando executado:

Comando Cloud Schdeuler para criar uma nova programação

Se você for para o seu Agendador de nuvem Página do projeto, você encontrará o cronograma que acabou de criar:

Página de Cloud Schdeuler mostrando o cronograma recém -criado

Você pode fazer um Force Run selecionando a opção do ... no lado direito da programação. Eu tentei e funcionou para mim. Esperei alguns minutos para que fosse acionado novamente a tempo.

O trabalho de corrida em nuvem acionou com sucesso pelo agendador

É isso; É melhor excluir o cronograma e o trabalho se você estiver testando.

Conclusão #

Nesta postagem, você aprendeu sobre os empregos do Google Cloud Run e o uso deles. Você também aprendeu a criar e executar trabalhos em nuvem em um cronograma com a programação do Google Cloud com um exemplo simples de node.js. Espero que você possa utilizar trabalhos de execução em nuvem para executar tarefas com eficiência. Continue aprendendo!

Tecnologia

Post navigation

Previous Post: Por que a adição de FA dos Vikings pode estar em min por um bom tempo, não muito tempo
Next Post: Estes são os recursos do CRM que oferecem o maior retorno para o seu dinheiro

Mais Artigos Relacionados

O RLWRLD levanta US $ 14,8 milhões para construir um modelo fundamental para robótica O RLWRLD levanta US $ 14,8 milhões para construir um modelo fundamental para robótica Tecnologia
O Google tem um truque para a bateria do pixel 9A envelhecer corretamente O Google tem um truque para a bateria do pixel 9A envelhecer corretamente Tecnologia
O guia ético do hacker para hackear wifi com o Termux O guia ético do hacker para hackear wifi com o Termux Tecnologia
Obtendo a pilha tecnológica certa para empresas de fintech australianas Obtendo a pilha tecnológica certa para empresas de fintech australianas Tecnologia
Nagaoka revela o MP-700 MOVELECIMENTO PHONO CARTRIGHE Nagaoka revela o MP-700 MOVELECIMENTO PHONO CARTRIGHE Tecnologia
Nintendo Switch 2 GameCube Controlador clássico Imprimir revela limitações Nintendo Switch 2 GameCube Controlador clássico Imprimir revela limitações Tecnologia

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Últimas postagens

  • Sua equipe vai adorar este editor de PDF fácil de usar
  • O vídeo da IA ​​deu um salto surpreendente em realismo. Estamos condenados?
  • Batalha de QB neste verão, o boato Caleb Williams, Sam Darnold
  • Compete por US $ 570 mil no torneio BC.Game’s Play & Win
  • 5 principais desafios na indústria editorial e como resolvê -los

Categorias

  • criptomoeda
  • Esportes
  • Lei Educacional
  • Realidade Virtual
  • Tecnologia

Direitos Autorais © 2025 Torvyn.

Powered by PressBook Blog WordPress theme