Was bedeutet Anforderungszeitlimit?

爱喝马黛茶的安东尼
Freigeben: 2020-07-13 16:34:14
Original
52802 Leute haben es durchsucht

Timeout

Um zu verhindern, dass der Server nicht rechtzeitig antwortet, sollten die meisten an externe Server gesendeten Anfragen den Timeout-Parameter enthalten. Standardmäßig kommt es bei Anfragen nicht automatisch zu einer Zeitüberschreitung, es sei denn, es wird explizit ein Zeitüberschreitungswert angegeben. Ohne Zeitüberschreitung kann Ihr Code mehrere Minuten oder länger hängen bleiben.

Was bedeutet Anforderungszeitlimit?

Das Verbindungszeitlimit bezieht sich auf die Anzahl der Sekunden, die Request wartet, wenn Ihr Client eine Verbindung zum Remote-Maschinen-Port herstellt (entsprechend connect()). Eine gute Vorgehensweise besteht darin, das Verbindungszeitlimit auf einen Wert festzulegen, der etwas größer als ein Vielfaches von 3 ist, da die Standardgröße des TCP-Paket-Neuübertragungsfensters 3 beträgt.

Im Bereich des Crawler-Proxys stoßen wir häufig auf das Problem des Anforderungszeitlimits. Der Code bleibt dort hängen, es wird kein Fehler gemeldet und es erfolgt keine Antwort auf Anfragen.

Verwandte Empfehlungen: „Python-Video-Tutorial

Die übliche Verarbeitung besteht darin, der Anweisung „requests.get()“ eine Zeitüberschreitung hinzuzufügen, um die Anforderungszeit zu begrenzen.

req = requests.get(url, headers=headers, proxies=proxies, timeout=5)
Nach dem Login kopieren

Wenn Sie feststellen, dass das Problem der langfristigen Nichtantwort weiterhin besteht, nachdem Sie Timeout=5 eingestellt haben, können Sie die Parameter im Timeout verfeinern

Nachdem Sie die folgenden Änderungen vorgenommen haben, Das Problem wird verschwinden

req = requests.get(url, headers=headers, proxies=proxies, timeout=(3,7))
Nach dem Login kopieren

Timeout vergeht in einem Tupel (3,7). Die erste Ziffer ist das Timeout der Verbindungsverbindung und die zweite Ziffer ist das Timeout des Lesens

Wenn es auftritt während der Verwendung von timeout ValueError Fehlermeldung (ähnlich: ValueError: Timeout value connect war Timeout(connect=2.0, read=2.0, total=None), aber es muss ein int oder float sein. ), Dies ist die Python-Requests-Version. Ein Fehler in Version 2.4.3-4 erfordert, dass wir Anfragen aktualisieren

pip install -U requests
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas bedeutet Anforderungszeitlimit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage