Skip to content

Funktionsvergleich & Erweiterungen des Ruby Link-Checkers (v1.0.1 → v1.0.2)

Latest

Choose a tag to compare

@bylickilabs bylickilabs released this 12 Jun 13:45
236f755

Funktionsvergleich & Erweiterungen des Ruby Link-Checkers (v1.0.1 → v1.0.2)

Änderungsprotokoll – Link-Checker (Ruby)

Ausgangspunkt
Die ursprüngliche Version des Link-Checkers:

  • Arbeitet sequentiell (eine URL nach der anderen)
  • Verwendet HEAD-Anfragen (optional GET)
  • Gibt die Ergebnisse in die Konsole und eine results.csv aus
  • Keine Fehlerwiederholung, keine parallele Verarbeitung
  • Kein Einfluss auf Timeout über CLI



🛠 Erweiterungen und Anpassungen

✅ 1. Parallele Verarbeitung (Concurrency)
Änderung:

  • Einsatz von concurrent-ruby mit FixedThreadPool
  • URLs werden parallel geprüft (statt sequentiell)

Nutzen:

  • Deutlich schnellere Verarbeitung großer URL-Mengen



✅ 2. Fehlerwiederholung bei Timeouts
Änderung:

  • Automatischer Wiederholungsversuch bei fehlgeschlagenen Verbindungen (standardmäßig 2 Versuche)

Nutzen:

  • Robuster gegenüber Netzwerkfehlern oder temporären Ausfällen



✅ 3. CLI-Parameter für Timeout
Änderung:

  • Dritter Parameter beim Skriptaufruf erlaubt die Festlegung des Timeout-Werts in Sekunden

Nutzen:

  • Flexiblere Anpassung an Netzwerkbedingungen oder Zielserver



✅ 4. Dauer-Messung pro URL
Änderung:

  • Ermittlung der Laufzeit (in Sekunden) jeder URL-Prüfung
  • Ausgabe in CSV-Datei

Nutzen:

  • Bewertung der Server-Reaktionszeiten möglich



✅ 5. Verbesserte CSV-Ausgabe
Änderung:

  • CSV enthält zusätzlich die Dauer der Anfrage in Sekunden

Beispiel:

URL,Status,Beschreibung,Dauer (s)
https://example.com,200,OK,0.37



✅ 6. Farbliche Ausgabe beibehalten

Keine Änderung:

  • Bestehende farbliche Kennzeichnung der Statusklassen bleibt erhalten (colorize)



✅ 7. Fehlerausgaben differenzierter

Änderung:
- Fehlerausgaben zeigen zusätzlich die Laufzeit bis zum Fehler
- Bessere Diagnose bei unerreichbaren Zielen




💻 Neuer Skriptaufruf

ruby link_checker.rb urls.txt get 10
  • urls.txt: Liste der zu prüfenden URLs
  • get: HTTP-Methode (get oder head)
  • 10: Timeout in Sekunden



📁 Ergebnisdatei

Die Datei results.csv enthält:

  • URL
  • HTTP-Status
  • Status-Beschreibung
  • Antwortdauer (in Sekunden)



📦 Neue Abhängigkeiten

gem install concurrent-ruby



Vergleichstabelle: Link-Checker Version 1 vs. Version 2

Funktion / Merkmal Version 1 (ursprünglich) Version 2 (erweitert)
Verarbeitung Sequentiell (eine URL nach der anderen) Parallel mit FixedThreadPool (concurrent-ruby)
Fehlerwiederholung Keine Wiederholungen bei Fehlern Automatische Wiederholung (z. B. 2 Versuche bei Timeout/Fehler)
Timeout konfigurierbar Fest codiert auf 5 Sekunden Frei wählbar über CLI-Parameter (z. B. 10 für 10s)
HTTP-Methode wählbar HEAD oder GET über CLI Gleich geblieben (HEAD oder GET über CLI)
Dauer der Anfrage messen Nicht vorhanden Dauer jeder Anfrage wird in Sekunden gemessen
CSV-Inhalte URL, Statuscode, Nachricht URL, Statuscode, Nachricht, Dauer (in Sekunden)
Farbliche Konsolenausgabe Ja, via colorize Ja, beibehalten
Fehlerausgabe Einfache Fehlermeldung Fehlermeldung + Dauer bis Fehler
Multithreading Nein Ja, durch concurrent-ruby
Abhängigkeiten colorize, net/http, csv, uri Zusätzlich: concurrent-ruby
Skalierbarkeit Langsam bei vielen URLs Signifikant schneller bei großen URL-Mengen
Aufruf über CLI ruby script.rb urls.txt get ruby script.rb urls.txt get 10 (inkl. Timeout)