Fastidsgränser och den sammanlagda tidsgränsen för proxybegäran
Skilj gränser per fas från den totala tidsbudgeten för en proxyoperation, inklusive nya försök och läsning av svaret.
Tidsgränser för anslutning och läsning begränsar särskilda väntetider. De begränsar inte nödvändigtvis en hel proxyoperation, som också kan omfatta kö, DNS, CONNECT, TLS, omdirigeringar, nya försök och läsning av svaret.
| Gräns | Omfattning |
|---|---|
| Tidsgräns för anslutning | Upprättande av anslutning enligt klientens definition |
| Tidsgräns för läsainaktivitet | En väntan utan förväntad dataframgång |
| Sammanlagd tidsgräns | Tillåten varaktighet för hela operationen |
Börja med operationens budget
Använd klientens dokumenterade sammanlagda tidsgräns eller avbrytandemekanism där den finns, tillsammans med fasgränserna. HTTPX skiljer väntetider för pool, anslutning, läsning och skrivning. Requests anger att dess tidsgräns inte är en gräns för fullständig nedladdning. curl erbjuder en sammanlagd överföringstidsgräns.
Till exempel använder ett jobb på tjugo sekunder två sekunder i kö, tre för att bygga sin väg och sex på ett misslyckat utbyte. Nästa försök har ungefär nio sekunder kvar. Att ge varje nytt försök tjugo färska sekunder skulle kasta bort den ursprungliga budgeten.
Använd en monoton klocka för att räkna ut förfluten tid. Bär en absolut tidsgräns eller återstående varaktighet genom de lager som äger arbetet. Om en omgivande avbrytandemekanism inte kan genomdriva den nödvändiga omfattningen, gör den begränsningen explicit.
Ta med kroppen och städningen
En metod som återvänder efter huvudena kan lämna läsning av kroppen utanför sin tidsgräns. Avgör om budgeten täcker upprättande, en hel ändlig nedladdning eller en långvarig ström med egna livskraftighetsregler. Ett modernt .NET-exempel för avbrott av huvuden och kropp bär en token genom båda faserna.
Lämna tid att stänga svar och slutföra avbrottet innan ett nästa försök tar poolkapacitet. Registrera fasen som misslyckades och förfluten tid; upprepade läsningar med framsteg kan uppfylla inaktivitetsgränserna medan det sammanlagda jobbet tar för lång tid.
Tidsgränsen för en gateway mot uppströmmen tillhör den gatewayen. När den returnerar 504 kan outnyttjad klientbudget inte förlänga det avslutade försöket. Håll varje timer knuten till sin ägare när du avgör vilken inställning som behöver rättas.