Websites mit Go-Workern prüfen

Entwickle einen Go-Prüfer mit einem Ergebnis pro Aufgabe, klaren Fehlerarten und begrenztem Worker-Pool für kontrollierte lokale HTTP-Ziele.

ProjektGolang

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Websites mit Go-Workern prüfen ist ein praktisches Go-Projekt für Lernende, die nebenläufige Arbeit koordinieren möchten. Hilf einem Veranstalter, vorbereitete lokale Website-Einstiege vor der Eröffnung zu prüfen. Entwickle einen wiederverwendbaren Befehl, der echte HTTP-Anfragen sendet und für jede Aufgabe ein zutreffendes JSON-Ergebnis speichert, auch wenn mehrere Aufgaben dieselbe URL verwenden.

Zwei Guided Labs entwickeln zuerst einen vollständigen Prüfer für ein Ziel und verteilen anschließend Aufgaben auf einen kleinen Worker-Pool. Eine eigenständige Challenge prüft eine andere Veranstaltungsroute mit höchstens drei Workern. Jede Einheit beginnt mit eigener Umgebung und eigenen Daten. Plane ungefähr 155 Minuten ein; das ist eine Schätzung des Autors einschließlich Lesen und üblicher Korrekturen.

Was du lernen wirst

Nach Abschluss des Kurses kannst du:

  • ID und ursprüngliche URL jeder Aufgabe erhalten und genau ein Ergebnis erzeugen, auch wenn eine andere Aufgabe fehlschlägt;
  • HTTP-Ablehnung, unerwarteten Inhalt, Verbindungsfehler und Zeitüberschreitungen unterscheiden, einschließlich Fehlern beim Lesen des Antwortinhalts;
  • HTTP-Anfragen mit einem endlichen Client-Timeout versehen und empfangene Antwort-Bodys schließen;
  • Aufgaben mit Goroutinen und Channels verteilen, die Verantwortung für das Schließen erklären und mit sync.WaitGroup auf Worker warten;
  • Ergebnisse ohne gleichzeitige Schreibzugriffe auf eine gemeinsame Sammlung erfassen und echte überlappende Anfragen innerhalb der Worker-Grenze beobachten;
  • einen vollständigen JSON-Bericht speichern und prüfen, unterschiedliche Abschlussreihenfolgen akzeptieren sowie leere Eingaben oder weniger Aufgaben als Worker behandeln.

Für wen dieser Kurs geeignet ist

Der Kurs richtet sich an Go-Lernende, die vertraute Funktionen und Datenstrukturen zu einem nützlichen nebenläufigen Kommandozeilenwerkzeug verbinden möchten.

Voraussetzungen: Grundlegende Terminalnavigation, Go-Funktionen, Structs, Slices, Module und grundlegende Channel-Syntax sowie Eine API für Fundsachen entwickeln oder gleichwertige HTTP-Erfahrung. Goroutinen, Verantwortung für das Schließen von Channels, sync.WaitGroup, Client-Timeouts und die Freigabe von Antwort-Bodys werden vor ihrer Verwendung erklärt.

Lernumgebung: LabEx stellt Go, Startcode, kontrollierte lokale HTTP-Ziele und eine WebIDE im Browser bereit. Im Terminal Workspace führst du den Prüfer aus und liest seinen JSON-Bericht, ohne Go lokal zu installieren. Befehle, Zielinhalte und Programmausgaben bleiben auf Englisch.

Häufig gestellte Fragen

Scanne ich öffentliche Websites?

Du prüfst ausschließlich die vorbereiteten lokalen Ziele mit endlichen Verzögerungen. Das Werkzeug prüft einmalig; dauerhafte Überwachung, Alarme und Garantien für beliebige Internetbedingungen gehören nicht zum Projekt.

Hält ein fehlgeschlagenes Ziel die anderen Prüfungen an?

Jede Eingabeaufgabe muss ein eigenes Ergebnis erhalten. Eine HTTP-Ablehnung des Servers unterscheidet sich von einem Verbindungsfehler. Nach Ablauf seines konfigurierten Timeouts wartet der Client nicht länger auf eine langsame Antwort; der Zielserver kann die Verarbeitung später abschließen. Wenn eine Antwort empfangen wurde, bleibt ihr HTTP-Status im Bericht erhalten.

Was ändert sich in der Challenge?

Aufgaben-IDs, URLs und erwartete Inhalte ändern sich, und die Obergrenze steigt auf drei Worker. Du verwendest die bereits geübten Mechanismen. Ergebnisse dürfen in beliebiger Reihenfolge eintreffen; vollständige Aufgabenabdeckung und Nebenläufigkeitsgrenze gelten weiterhin.

Lehrer

labby
Labby
Labby is the LabEx teacher.

Für Sie empfohlen

no data