Les délais de connexion et de lecture limitent des attentes précises. Ils ne plafonnent pas nécessairement toute une opération via un proxy, qui peut aussi comprendre l'attente en file, le DNS, CONNECT, TLS, les redirections, les nouvelles tentatives et la consommation de la réponse.

LimitePortée
Délai de connexionÉtablissement de la connexion selon la définition du client
Délai d'inactivité de lectureUne attente sans la progression de données attendue
Échéance globaleDurée autorisée de l'opération complète

Partez du budget de l'opération

Utilisez l'échéance globale documentée du client ou son mécanisme d'annulation lorsqu'il existe, parallèlement aux limites de phase. HTTPX sépare les attentes de pool, de connexion, de lecture et d'écriture. Requests précise que son délai n'est pas une limite de téléchargement complet. curl fournit un délai de transfert total.

Par exemple, une tâche de vingt secondes passe deux secondes en file, trois à établir sa route et six dans un échange infructueux. Sa tentative suivante dispose d'environ neuf secondes. Donner vingt secondes neuves à chaque nouvelle tentative reviendrait à jeter le budget initial.

Employez une horloge monotone pour comptabiliser le temps écoulé. Transportez une échéance absolue ou la durée restante à travers les couches qui possèdent le travail. Si le mécanisme d'annulation environnant ne peut pas imposer la portée requise, rendez cette limitation explicite.

Incluez le corps et le nettoyage

Une méthode qui revient après les en-têtes peut laisser la lecture du corps hors de son échéance. Décidez si le budget couvre l'établissement, un téléchargement fini complet ou un flux de longue durée doté de règles de vivacité distinctes. Un exemple moderne en .NET pour annuler les en-têtes et le corps transporte un seul jeton sur les deux étapes.

Laissez du temps pour fermer les réponses et achever l'annulation avant qu'une tentative suivante n'occupe la capacité du pool. Consignez la phase en échec et le temps écoulé ; des lectures répétées qui progressent peuvent satisfaire les limites d'inactivité alors que la tâche globale dure trop longtemps.

L'échéance d'une passerelle vers l'amont appartient à cette passerelle. Une fois qu'elle renvoie 504, le budget client inutilisé ne peut pas prolonger la tentative achevée. Gardez chaque minuterie attachée à son propriétaire lorsque vous décidez quel réglage corriger.

Articles similaires