projet dans Golang Skill Tree

Vérifier des sites web avec des workers Go

Créez un vérificateur Go avec un résultat par tâche, des erreurs distinctes et un groupe limité de workers pour des cibles HTTP locales contrôlées.

ProjetGolang

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Vérifier des sites web avec des workers Go est un projet pratique destiné aux personnes prêtes à coordonner des tâches concurrentes en Go. Aidez l’organisateur d’un événement à vérifier les accès web locaux préparés avant l’ouverture. Créez une commande réutilisable qui effectue de vraies requêtes HTTP et enregistre un résultat JSON fidèle pour chaque tâche, y compris lorsque plusieurs tâches partagent une URL.

Deux laboratoires guidés construisent d’abord un vérificateur complet pour une cible, puis répartissent les tâches entre un petit groupe de workers. Un défi indépendant vérifie un autre parcours de l’événement avec un maximum de trois workers. Chaque unité dispose de son propre environnement et de ses données. Prévoyez environ 155 minutes, une estimation de l’auteur comprenant la lecture et les corrections courantes.

Ce que vous apprendrez

À la fin du cours, vous saurez :

  • conserver l’ID et l’URL d’origine de chaque tâche et produire exactement un résultat, même lorsqu’une autre tâche échoue ;
  • distinguer un refus HTTP, un contenu inattendu, une erreur de connexion et un dépassement de délai, y compris lors de la lecture du corps d’une réponse ;
  • définir un délai d’attente client fini pour les requêtes HTTP et fermer les corps de réponse reçus ;
  • répartir les tâches avec des goroutines et des canaux, expliquer qui ferme chaque canal et attendre les workers avec sync.WaitGroup ;
  • collecter les résultats sans écritures concurrentes dans une collection partagée et observer de vraies requêtes simultanées dans la limite fixée ;
  • enregistrer et examiner un rapport JSON complet, accepter plusieurs ordres de fin et gérer une entrée vide ou moins de tâches que de workers.

À qui s’adresse ce cours

Ce cours s’adresse aux personnes qui apprennent Go et souhaitent transformer des fonctions et des structures de données connues en un outil concurrent utile en ligne de commande.

Prérequis : Navigation élémentaire dans le terminal, fonctions, structures, slices, modules et syntaxe de base des canaux Go, ainsi que Créer une API d’objets trouvés ou une expérience HTTP équivalente. Les laboratoires expliquent les goroutines, la responsabilité de fermeture des canaux, sync.WaitGroup, les délais du client et la fermeture des corps de réponse avant leur utilisation.

Environnement d’apprentissage : LabEx fournit Go, le code de départ, des cibles HTTP locales contrôlées et un WebIDE dans le navigateur. Utilisez le terminal Workspace pour exécuter le vérificateur et lire son rapport JSON sans installer Go localement. Les commandes, le contenu des cibles et les sorties du programme restent en anglais.

Questions fréquentes

Vais-je scanner des sites publics ?

Vous vérifiez uniquement les cibles locales préparées, dont les délais sont finis. Cet outil réalise une vérification ponctuelle ; la surveillance continue, les alertes et les garanties dans toutes les conditions d’Internet sont hors du périmètre.

Une cible en échec arrête-t-elle les autres vérifications ?

Chaque tâche d’entrée doit recevoir son propre résultat. Un refus HTTP du serveur diffère d’une erreur de connexion. Le client cesse d’attendre une réponse lente lorsque son délai configuré expire ; le serveur cible peut terminer son traitement plus tard. Le rapport conserve le statut HTTP lorsqu’une réponse a été reçue.

Qu’est-ce qui change dans le défi ?

Les IDs, les URLs et le contenu attendu changent, et la limite passe à trois workers. Vous réutilisez les mécanismes pratiqués dans les laboratoires guidés. Les résultats peuvent arriver dans n’importe quel ordre ; la couverture complète des tâches et la limite de concurrence restent obligatoires.

Enseignant

labby
Labby
Labby is the LabEx teacher.

Recommandé pour vous

no data