


Wie wirkt sich die Einstellung von Warteschlangen und Anforderungsverzögerungen von Threads von GO Crawler Framework auf die gleichzeitige Verarbeitung von Anforderungen aus?
Die Anzahl der Warteschlangen und Anforderungsverzögerungen von Go Language Crawler Framework Colly
Eine effiziente gleichzeitige Anfrageverarbeitung ist bei der Verwendung des GO -Crawler -Framework -Colly von entscheidender Bedeutung. In diesem Artikel werden die Einstellungen der Thread -Zähler bewertet und Verzögerungen in queue
in Colly anfordern, die die gleichzeitige Verarbeitung beeinflussen und eine gemeinsame Frage beantworten.
Problem: Interaktion zwischen der Anzahl der Threads und der Anforderungsverzögerung
Angenommen, wir setzen queue
auf 2:
q, _: = queue.new (2, Speicher)
Und fügte 3 Anfragen hinzu. In der Zwischenzeit wird colly.Limit()
verwendet, um die Verzögerung jeder Anfrage auf 5 Sekunden festzulegen. Es wird erwartet, dass zwei Anfragen fast gleichzeitig ausgestellt werden und nach 5 Sekunden reagieren und die dritte Anfrage um weitere 5 Sekunden verzögert wird. Das tatsächliche Ergebnis ist jedoch:
- Es werden zwei Anfragen erstellt.
- Nach 5 Sekunden antwortet die erste Anfrage und es wird eine dritte Anfrage erstellt.
- Nach 5 Sekunden antwortet die zweite Anfrage.
- Nach 5 Sekunden antwortet die dritte Anfrage.
Dies wird nicht parallel verarbeitet. Warum scheint die Anzahl der queue
zu scheitern? Beeinflusst colly.Limit()
die Parallelität der queue
? Erstellt onrequest
-Rückruffunktion nur eine Anfrage, ohne tatsächlich eine Anfrage zu stellen?
Analyse: Unabhängigkeit zwischen Anzahl der Threads und Anforderungsverzögerung
queue
von Colly verwaltet die Anzahl der gleichzeitigen Anforderungen, während colly.Limit()
die Verzögerung für jede Anforderung festlegt. Die beiden sind unabhängige Mechanismen.
Die Anzahl der Threads queue
begrenzt die Anzahl der gleichzeitig verarbeiteten Anforderungen. colly.Limit()
wendet eine Verzögerung an , bevor jede Anfrage ausgestellt wird.
Im obigen Fall:
-
queue
erstellt zwei Anfragen, abercolly.Limit()
lässt sie beide 5 Sekunden warten. - Die erste Anfrage wird nach Ablauf der Verzögerung ausgestellt. Nach der Antwort veröffentlicht
queue
einen Thread und erstellt eine dritte Anfrage. - Die zweite Anfrage wird ebenfalls gesendet und beantwortet, nachdem er 5 Sekunden lang gewartet wurde.
- Die dritte Anfrage wird ebenfalls gesendet und beantwortet, nachdem er 5 Sekunden lang gewartet wurde.
Daher maskiert die Anforderung Verzögerung die Parallelität queue
.
onrequest
-Rückruf und Anfrage zur Ausgabezeit
onrequest
-Rückruffunktion wird abgefeuert, wenn die Anforderung zur queue
hinzugefügt wird, nicht wenn die Anfrage tatsächlich ausgestellt wird. Es wird verwendet, um einige Vorverarbeitungsvorgänge durchzuführen, bevor die Anfrage ausgestellt wird.
Schlussfolgerung: Koordinieren Sie die Anzahl der Threads und fordern Sie Verzögerungen an
Die Verzögerung von colly.Limit()
wirkt sich auf den Gleichzeitigkeitseffekt der Anzahl der queue
aus. Um eine echte Parallelität zu erreichen, ist eine sorgfältige Koordination der Thread -Anzahl und Anforderungsverzögerungseinstellungen erforderlich. Wenn eine hohe Parallelität erforderlich ist, sollte die von colly.Limit()
festgelegte Verzögerung minimiert oder entfernt werden, oder ein feinerer Parallelitätskontrollmechanismus sollte berücksichtigt werden. Wenn Sie die Crawl -Geschwindigkeit steuern müssen, wird empfohlen, eine feinere Granularkontrollmethode zu verwenden, anstatt sich auf colly.Limit()
zu verlassen.
Das obige ist der detaillierte Inhalt vonWie wirkt sich die Einstellung von Warteschlangen und Anforderungsverzögerungen von Threads von GO Crawler Framework auf die gleichzeitige Verarbeitung von Anforderungen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Möchten Sie wissen, wie Sie untergeordnete Kategorien auf der Seite der übergeordneten Kategorie -Archivseite angezeigt werden? Wenn Sie eine Klassifizierungsarchivseite anpassen, müssen Sie dies möglicherweise tun, um es Ihren Besuchern nützlicher zu machen. In diesem Artikel zeigen wir Ihnen, wie Sie Kinderkategorien auf der Seite der Elternkategorie problemlos anzeigen können. Warum erscheinen Unterkategorien auf der Seite der übergeordneten Kategorie -Archiv -Seite? Indem Sie alle Kinderkategorien auf der Seite der übergeordneten Kategorie -Archiv -Seite anzeigen, können Sie sie für Besucher weniger allgemein und nützlicher machen. Wenn Sie beispielsweise einen WordPress-Blog über Bücher ausführen und eine Taxonomie namens "Thema" haben, können Sie Untertaxonomie wie "Roman", "Sachbücher" hinzufügen, damit Ihre Leser können

In Intellij ...

Faktoren der steigenden Preise für virtuelle Währung sind: 1. Erhöhte Marktnachfrage, 2. Verringertes Angebot, 3.. Rückgangsfaktoren umfassen: 1. Verringerte Marktnachfrage, 2. Erhöhtes Angebot, 3. Streik der negativen Nachrichten, 4. Pessimistische Marktstimmung, 5. makroökonomisches Umfeld.

Verstehen Sie die Zufälligkeit von kreisförmigen Abhängigkeiten beim Start des Frühlingsprojekts. Bei der Entwicklung des Frühlingsprojekts können Sie Zufälligkeit begegnen, die durch kreisförmige Abhängigkeiten beim Projektstart verursacht werden ...

JDBC ...

Warum ist der Rückgabewert leer, wenn redistemplate für die Stapelabfrage verwendet wird? Bei Verwendung von Redistemplate für Batch -Abfragevorgänge können Sie auf die zurückgegebenen Ergebnisse stoßen ...

Analyse des Grundes, warum das Python -Skript nicht gefunden werden kann, wenn Sie einen Pyflink -Job auf Garn einreichen, wenn Sie versuchen, einen Pyflink -Job über Garn einzureichen. Sie können begegnen ...

Diskussion über die Gründe, warum JavaScript keine Benutzer -Computer -Hardware -Informationen in der täglichen Programmierung erhalten kann. Viele Entwickler werden neugierig sein, warum JavaScript nicht direkt erhalten werden kann ...
