Wer crawlt so spät durch www und http?
8.12.2007 von Michael Seitz
Mein neuer Crawler läuft endlich. Das Multithreading war nicht einfach zu implementieren.
Nachdem man in Zukunft nicht um Threading herumkommen wird, wollte ich das auch endlich in C# ausprobieren. In .NET hat man mit einem Multithreading-Crawler zunächst ein paar Probleme:
- Die System.Collections in .NET sind nicht threadsafe
- HttpRequests sind nicht parallel möglich
Im Web habe ich dann noch eine Bibliothek gefunden in der Collections bei Zugriff gesperrt werden und die HttpRequests habe ich über Sockets realisiert.
Die Anwendung läuft sehr performant, selbst 50 “parallele” Threads sind kein Problem. Der Speicherverbrauch des Crawlers hält sich in Grenzen. Im Moment wird der Scheduler aus einer First-In-First-Out-Queue gespeist die im Speicher liegt. Bei einer Million Seiten ist das … speicherintensiv.
Was jetzt noch zu tun ist um eine produktive Anwendung daraus zu machen:
- Code aufräumen; alles in Klassen verpacken
- Scheduler-Queue in eine Datenbank auslagern


Sei froh, dass es bei dir läuft, ich versuche es seit nunmehr 2 Wochen und habe es immernoch nicht auf die Reihe bekommen. Aber ich gebe nicht auf
Wo liegt denn das Problem bei deiner Implementierung?
Hey,
wanna cheat some cryptograms for us? We’re looking for new cracks to help us here –> http://www.nsa.gov/gallery/photo/photo00004.jpg
Na klar, weil die NSA auch über 1&1 IPs surft …
Whoo! Der is ja auch cool drauf

Aber eins muss man der NSA lassen: Da haben nen größeren Parkplatz als jeder IKEA hierzuladen