Limite de timp pe faze și termenul total al cererii proxy
Separați limitele pe faze de bugetul total de timp al unei operații prin proxy, inclusiv reîncercările și citirea răspunsului.
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 conectare | Stabilirea conexiunii conform definiției clientului |
| Limită de inactivitate la citire | O așteptare fără progresul de date așteptat |
| Termen total | Durata 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ă.