HTTPX PoolTimeout ass keen Timeout vun der Verbindung mam Proxy
Erkennt Waarden am HTTPX-Verbindungspool a gitt Streaming-Äntwerte fräi, ier Dir e Proxy ersetzt, dee vläicht ni eng weider Ufro krut.
PoolTimeout bedeit, datt HTTPX bannent der konfiguréierter Waardezäit keng Verbindung aus sengem Pool krut. Dat beweist keen Timeout vun enger neier TCP-Verbindung mam Proxy. Déi zweet Ufro waart vläicht nach an Ärem Prozess.
Dat ass einfach nozestellen, wann e Client eng Verbindung erlaabt an déi éischt Streaming-Äntwert op bleift. Eng aner Ufro ze starten mécht déi Verbindung net vun eleng fräi.
Maacht d’Verantwortung fir Streaming-Äntwerte siichtbar
import httpx
limits = httpx.Limits(
max_connections=1,
max_keepalive_connections=1,
)
timeout = httpx.Timeout(
connect=5, read=10, write=10, pool=1
)
with httpx.Client(
proxy="http://203.0.113.10:8080",
trust_env=False,
limits=limits,
timeout=timeout,
) as client:
with client.stream("GET", "https://example.com/") as response:
print(response.status_code)
for chunk in response.iter_bytes():
print(len(chunk))
next_response = client.get("https://example.com/")
print(next_response.status_code)
Ersetzt d’Dokumentatiounsadress vum Proxy virum Ausféieren. Déi nächst Ufro fänkt nom Verloosse vum Streamkontext un. Deen Austrëtt mécht d’Äntwert zou, och wann de Code aus der Schleef geet oder eng Ausnam ausléist.
Bei manuellem Streaming, wéi client.send(request, stream=True), ass Äre Code fir dat endgültegt Zoumaache verantwortlech. Bei AsyncClient gëtt op déi entspriechend manuell Botzaarbecht mat response.aclose() gewaart. Eng ongelies Äntwert zouzemaache gëtt Kapazitéit fräi, kann awer d’Verwerfe vun der ënnerleiender Verbindung amplaz vun hirer Wiederverwendung verlaangen.
Liest den Numm vun der Ausnam
ConnectTimeout betrëfft d’Opbaue vun enger Verbindung. ReadTimeout betrëfft d’Waarden op Äntwertdaten. PoolTimeout betrëfft d’Kréie vun enger Verbindungsplaz. Nëmmen «Proxytimeout» ze logge verléiert den Ënnerscheed, deen néideg ass, fir eng Korrektur ze wielen.
Kontrolléiert oppen Äntwerten, gläichzäiteg Aufgaben a Verbindungslimiten, ier Dir Endpunkt-IPe wiesselt. E gréissere Pool ka fir eng berechtegt gläichzäiteg Laascht passen, korrigéiert awer keng Äntwerten, déi ni zougemaach ginn. Hie gëtt der Applikatioun just méi Kapazitéit fir ze besetzen.
Behalt de Client fir Wiederverwendung iwwer déi ganz Aarbechtslaascht. En nei opzebauen, fir datt all Ufro funktionéierend ausgesäit, kann e Liewenszyklusproblem verstoppen an d’Wiederverwendung vu Verbindunge verléieren.