Time-outs voor verbinding en lezen beperken bepaalde wachttijden. Ze begrenzen niet noodzakelijk een volledige bewerking via een proxy, die ook wachten in de wachtrij, DNS, CONNECT, TLS, omleidingen, nieuwe pogingen en het lezen van de respons kan omvatten.

LimietBereik
Time-out voor verbindingOpzetten van de verbinding volgens de definitie van de client
Time-out voor leesinactiviteitEen wachttijd zonder de verwachte datavooruitgang
Totale deadlineToegestane duur van de volledige bewerking

Begin bij het budget van de bewerking

Gebruik de gedocumenteerde totale deadline of het annuleringsmechanisme van de client waar beschikbaar, samen met de faselimieten. HTTPX scheidt wachttijden voor pool, verbinding, lezen en schrijven. Requests stelt dat zijn time-out geen limiet voor een volledige download is. curl biedt een totale overdrachtstime-out.

Bijvoorbeeld: een taak van twintig seconden besteedt twee seconden in de wachtrij, drie aan het opbouwen van zijn route en zes aan een mislukte uitwisseling. De volgende poging heeft nog ongeveer negen seconden. Elke nieuwe poging verse twintig seconden geven zou het oorspronkelijke budget weggooien.

Gebruik een monotone klok voor het bijhouden van verstreken tijd. Draag een absolute deadline of resterende duur door de lagen die het werk bezitten. Als een omringend annuleringsmechanisme het vereiste bereik niet kan afdwingen, maak die beperking dan expliciet.

Neem de body en het opruimen mee

Een methode die na de headers terugkeert, kan het lezen van de body buiten zijn deadline laten. Bepaal of het budget het opzetten, een volledige eindige download of een langdurige stream met aparte levensvatbaarheidsregels dekt. Een modern .NET-voorbeeld voor het annuleren van headers en body draagt één token door beide fasen.

Laat tijd over om responsen te sluiten en de annulering te voltooien voordat een volgende poging poolcapaciteit neemt. Registreer de mislukte fase en de verstreken tijd; herhaalde lezingen met vooruitgang kunnen inactiviteitslimieten vervullen terwijl de totale taak te lang duurt.

De upstream-deadline van een gateway hoort bij die gateway. Zodra die 504 teruggeeft, kan ongebruikt clientbudget de voltooide poging niet verlengen. Houd elke timer aan zijn eigenaar gekoppeld wanneer u bepaalt welke instelling gecorrigeerd moet worden.

Gerelateerde artikelen