Limitele de timp pentru conectare și citire limitează așteptări anume. Nu limitează neapărat o operație întreagă prin proxy, care poate include și așteptarea în coadă, DNS, CONNECT, TLS, redirecționări, reîncercări și citirea răspunsului.

LimităDomeniu
Limită de conectareStabilirea conexiunii conform definiției clientului
Limită de inactivitate la citireO așteptare fără progresul de date așteptat
Termen totalDurata permisă a operației complete

Începeți cu bugetul operației

Folosiți termenul total documentat al clientului sau mecanismul de anulare când există, împreună cu limitele de fază. HTTPX separă așteptările pentru pool, conectare, citire și scriere. Requests precizează că limita sa nu este o limită de descărcare completă. curl oferă un termen de transfer total.

De exemplu, o sarcină de douăzeci de secunde petrece două secunde în coadă, trei stabilindu-și ruta și șase într-un schimb eșuat. Următoarea încercare are aproximativ nouă secunde. A da fiecărei reîncercări douăzeci de secunde noi ar arunca bugetul inițial.

Folosiți un ceas monoton pentru evidența timpului scurs. Transportați un termen absolut sau durata rămasă prin straturile care dețin lucrarea. Dacă mecanismul de anulare din jur nu poate impune domeniul necesar, faceți acea limitare explicită.

Includeți corpul și curățarea

O metodă care revine după antete poate lăsa citirea corpului în afara termenului său. Decideți dacă bugetul acoperă stabilirea, o descărcare finită completă sau un flux de lungă durată cu reguli de viabilitate separate. Un exemplu modern în .NET pentru anularea antetelor și a corpului duce un singur token prin ambele etape.

Lăsați timp pentru închiderea răspunsurilor și finalizarea anulării înainte ca o încercare următoare să ocupe capacitate din pool. Înregistrați faza eșuată și timpul scurs; citirile repetate care avansează pot satisface limitele de inactivitate în timp ce sarcina totală durează prea mult.

Termenul gateway-ului către amonte aparține acelui gateway. După ce returnează 504, bugetul de client nefolosit nu poate prelungi încercarea încheiată. Țineți fiecare cronometru legat de proprietarul său când decideți ce setare trebuie corectată.

Articole similare