Verificar sites com workers de Go

Crie um verificador Go com um resultado por tarefa, erros distintos e um pool limitado de workers para alvos HTTP locais controlados.

ProjetoGolang

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Verificar sites com workers de Go é um projeto prático para estudantes de Go prontos para coordenar trabalho concorrente. Ajude a organização de um evento a verificar as entradas web locais preparadas antes da abertura. Crie um comando reutilizável que faça requisições HTTP reais e salve um resultado JSON fiel para cada tarefa atribuída, incluindo tarefas diferentes que compartilham uma URL.

Dois laboratórios guiados primeiro constroem um verificador completo para um alvo e depois distribuem tarefas em um pequeno pool de workers. Um desafio independente verifica outra rota do evento com um limite superior de três workers. Cada unidade começa com seu próprio ambiente e dados. Reserve cerca de 155 minutos, uma estimativa do autor que inclui leitura e correções comuns.

O que você aprenderá

Ao concluir o curso, você poderá:

  • preservar o ID e a URL original de cada tarefa, produzindo exatamente um resultado mesmo quando outra tarefa falhar;
  • distinguir recusa HTTP, conteúdo inesperado, erros de conexão e tempos limite, incluindo falhas na leitura do corpo de uma resposta;
  • definir um tempo limite finito no cliente HTTP e fechar os corpos de resposta recebidos;
  • distribuir tarefas com goroutines e canais, explicar quem deve fechar cada canal e aguardar os workers com sync.WaitGroup;
  • reunir resultados sem escritas concorrentes em uma coleção compartilhada e observar requisições realmente sobrepostas dentro do limite de workers;
  • salvar e examinar um relatório JSON completo, aceitar ordens de conclusão diferentes e tratar entrada vazia ou menos tarefas que workers.

Para quem é este curso

Este curso é indicado para estudantes de Go que desejam transformar funções e estruturas de dados conhecidas em uma ferramenta concorrente útil de linha de comando.

Pré-requisitos: Navegação básica no terminal, funções, structs, slices, módulos e sintaxe básica de canais de Go, além de Criar uma API de achados e perdidos ou experiência equivalente com HTTP. Os laboratórios explicam goroutines, responsabilidade pelo fechamento de canais, sync.WaitGroup, tempos limite do cliente e liberação dos corpos de resposta antes do uso.

Ambiente de aprendizagem: A LabEx fornece Go, código inicial, alvos HTTP locais controlados e um WebIDE no navegador. Use o terminal Workspace para executar o verificador e ler seu relatório JSON sem instalar Go localmente. Os comandos, o conteúdo dos alvos e a saída do programa permanecem em inglês.

Perguntas frequentes

Vou escanear sites públicos?

Você verifica somente os alvos locais preparados, cujos atrasos são finitos. É uma ferramenta de verificação pontual; monitoramento contínuo, alertas e garantias para condições arbitrárias da Internet estão fora do projeto.

A falha de um alvo interrompe as outras verificações?

Cada tarefa de entrada deve receber seu próprio resultado. Uma recusa HTTP do servidor difere de um erro de conexão. O cliente para de esperar uma resposta lenta quando o tempo limite configurado expira; o servidor de destino pode concluir o processamento mais tarde. O relatório preserva o status HTTP quando uma resposta foi recebida.

O que muda no desafio?

Mudam os IDs das tarefas, as URLs e o conteúdo esperado, e o limite passa a três workers. Você reutiliza os mecanismos praticados nos laboratórios guiados. Os resultados podem chegar em qualquer ordem; a cobertura completa das tarefas e o limite de concorrência continuam obrigatórios.

Professor

labby
Labby
Labby is the LabEx teacher.

Recomendado para Você

no data