Límites de tiempo por fase y el plazo total de la solicitud de proxy
Separe los límites por fase del presupuesto total de tiempo de una operación a través de proxy, incluidos los reintentos y el consumo de la respuesta.
Los límites de conexión y de lectura limitan esperas concretas. No necesariamente limitan toda una operación a través de proxy, que también puede incluir cola, DNS, CONNECT, TLS, redirecciones, reintentos y consumo de la respuesta.
| Límite | Alcance |
|---|---|
| Límite de conexión | Establecimiento de la conexión según la definición del cliente |
| Límite de inactividad de lectura | Una espera sin el progreso de datos esperado |
| Plazo total | Duración permitida de la operación completa |
Empiece por el presupuesto de la operación
Utilice el plazo total documentado del cliente o su mecanismo de cancelación cuando exista, junto con los límites de fase. HTTPX separa las esperas de grupo, conexión, lectura y escritura. Requests indica que su límite no es un límite de descarga completa. curl ofrece un plazo de transferencia total.
Por ejemplo, una tarea de veinte segundos pasa dos segundos en cola, tres estableciendo su ruta y seis en un intercambio fallido. A su siguiente intento le quedan unos nueve segundos. Dar a cada reintento veinte segundos nuevos descartaría el presupuesto original.
Use un reloj monótono para contabilizar el tiempo transcurrido. Lleve un plazo absoluto o la duración restante a través de las capas que poseen el trabajo. Si el mecanismo de cancelación circundante no puede imponer el alcance requerido, haga explícita esa limitación.
Incluya el cuerpo y la limpieza
Un método que regresa después de las cabeceras puede dejar la lectura del cuerpo fuera de su plazo. Decida si el presupuesto cubre el establecimiento, una descarga completa finita o un flujo de larga duración con reglas de vitalidad separadas. Un ejemplo moderno de .NET para cancelar cabeceras y cuerpo lleva un solo token por ambas etapas.
Deje tiempo para cerrar las respuestas y completar la cancelación antes de que un intento siguiente tome capacidad del grupo. Registre la fase fallida y el tiempo transcurrido; las lecturas repetidas que avanzan pueden satisfacer los límites de inactividad mientras la tarea total dura demasiado.
El plazo de la puerta de enlace hacia el origen pertenece a esa puerta de enlace. Una vez que devuelve 504, el presupuesto de cliente no utilizado no puede extender el intento completado. Mantenga cada temporizador ligado a su propietario al decidir qué configuración debe corregirse.