Fazių laiko limitai ir bendras proxy užklausos terminas
Atskirkite atskirų fazių ribas nuo bendro proxy operacijos laiko biudžeto, įskaitant pakartotinius bandymus ir atsakymo skaitymą.
Ryšio ir skaitymo laiko limitai riboja konkrečius laukimus. Jie nebūtinai riboja visą proxy operaciją, kuri taip pat gali apimti laukimą eilėje, DNS, CONNECT, TLS, peradresavimus, pakartotinius bandymus ir atsakymo skaitymą.
| Riba | Apimtis |
|---|---|
| Ryšio laiko limitas | Ryšio užmezgimas pagal kliento apibrėžimą |
| Skaitymo neveiklumo laiko limitas | Laukimas be tikėtinos duomenų pažangos |
| Bendras terminas | Leidžiama visos operacijos trukmė |
Pradėkite nuo operacijos biudžeto
Naudokite kliento dokumentuotą bendrą terminą arba atšaukimo mechanizmą, kai jis yra, kartu su fazių ribomis. HTTPX atskiria baseino, ryšio, skaitymo ir rašymo laukimus. Requests nurodo, kad jo laiko limitas nėra viso atsisiuntimo riba. curl siūlo bendrą perdavimo terminą.
Pavyzdžiui, dvidešimties sekundžių užduotis praleidžia dvi sekundes eilėje, tris kurdama maršrutą ir šešias nesėkmingai apsikeisdama. Jos kitam bandymui lieka maždaug devynios sekundės. Duoti kiekvienam pakartotiniam bandymui naujas dvidešimt sekundžių reikštų išmesti pradinį biudžetą.
Skaičiuodami praėjusį laiką naudokite monotoninį laikrodį. Perduokite absoliutų terminą arba likusią trukmę per sluoksnius, kuriems priklauso darbas. Jei aplinkinis atšaukimo mechanizmas negali užtikrinti reikiamos apimties, tą apribojimą aiškiai nurodykite.
Įtraukite turinį ir valymą
Metodas, grįžtantis po antraščių, gali palikti turinio skaitymą už savo termino ribų. Nuspręskite, ar biudžetas apima užmezgimą, visą baigtinį atsisiuntimą, ar ilgalaikį srautą su atskiromis gyvybingumo taisyklėmis. Šiuolaikinis .NET pavyzdys, kaip atšaukti antraštes ir turinį, per abu etapus neša vieną žetoną.
Palikite laiko atsakymams uždaryti ir atšaukimui užbaigti, kol kitas bandymas neužima baseino talpos. Užfiksuokite nepavykusią fazę ir praėjusį laiką; pasikartojantys skaitymai su pažanga gali patenkinti neveiklumo ribas, nors visas darbas trunka per ilgai.
Tinklaus terminas į aukštesnį srautą priklauso tam tinklui. Kai jis grąžina 504, nepanaudotas kliento biudžetas negali pratęsti užbaigto bandymo. Laikykite kiekvieną laikmatį pririštą prie jo savininko, kai sprendžiate, kurią nuostatą reikia taisyti.