Una resposta que lliura alguns bytes de tant en tant pot romandre dins de cada límit d'inactivitat de lectura mentre triga molt més del compte en conjunt. Un temps de lectura no ha de mesurar tota la durada de la transferència.

Trieu la política segons la càrrega de treball. Un arxiu finit necessita un pressupost de finalització; un flux d'esdeveniments pot continuar legítimament durant hores i estar en silenci a estones.

Mesureu el progrés útil

Per a una descàrrega de fitxer, manteniu un termini global i considereu els controls de baixa velocitat o de progrés que admet el client. Definiu l'interval i la quantitat de dades útils. Un byte de batec pot mostrar activitat sense fer un progrés real cap a la finalització del fitxer.

Manteniu la configuració del túnel separada de la transferència del cos. Esperar que es completi CONNECT i rebre un cos de destinació lent són etapes diferents amb proves diferents.

Consumiu o tanqueu la resposta a cada camí de sortida. Deixar un flux lent obert pot fer que la petició següent esperi capacitat del pool, cosa que produeix un altre temps d'espera per una raó diferent.

Si la durada observada supera la política prevista, inspeccioneu la versió exacta del client i el bucle de lectura. Un temporitzador d'inactivitat correcte, el comportament d'un bucle personalitzat i un error d'implementació necessiten correccions diferents.

Articles relacionats