Časové limity fází a celkový termín proxy požadavku
Oddělte omezení jednotlivých fází od celkového časového rozpočtu operace přes proxy, včetně opakovaných pokusů a čtení odpovědi.
Časové limity připojení a čtení omezují konkrétní čekání. Nemusí nutně omezovat celou operaci přes proxy, která může zahrnovat také čekání ve frontě, DNS, CONNECT, TLS, přesměrování, opakované pokusy a čtení odpovědi.
| Omezení | Rozsah |
|---|---|
| Limit připojení | Navázání spojení podle definice klienta |
| Limit nečinnosti čtení | Čekání bez očekávaného postupu dat |
| Celkový termín | Povolené trvání celé operace |
Začněte rozpočtem operace
Použijte zdokumentovaný celkový termín klienta nebo mechanismus zrušení, pokud je k dispozici, společně s limity fází. HTTPX odděluje čekání na fond, připojení, čtení a zápis. Requests uvádí, že jeho limit není omezením úplného stažení. curl nabízí termín celkového přenosu.
Například dvacetisekundová úloha stráví dvě sekundy ve frontě, tři navázáním trasy a šest neúspěšnou výměnou. Její další pokus má zhruba devět sekund. Dát každému opakovanému pokusu čerstvých dvacet sekund by zahodilo původní rozpočet.
Pro účtování uplynulého času používejte monotónní hodiny. Přenášejte absolutní termín nebo zbývající dobu přes vrstvy, které práci vlastní. Pokud okolní mechanismus zrušení nemůže vynutit požadovaný rozsah, tuto mez výslovně uveďte.
Zahrňte tělo a úklid
Metoda, která se vrací po hlavičkách, může nechat čtení těla mimo svůj termín. Rozhodněte, zda rozpočet pokrývá navázání, celé konečné stažení, nebo dlouhodobý proud s oddělenými pravidly životnosti. Moderní příklad .NET pro zrušení hlaviček i těla nese jeden token oběma fázemi.
Ponechte čas na uzavření odpovědí a dokončení zrušení, než další pokus zaujme kapacitu fondu. Zaznamenejte neúspěšnou fázi a uplynulý čas; opakovaná čtení s postupem mohou splnit limity nečinnosti, zatímco celková úloha trvá příliš dlouho.
Termín brány vůči nadřazené straně patří této bráně. Poté, co vrátí 504, nevyužitý rozpočet klienta nemůže prodloužit dokončený pokus. Při rozhodování, které nastavení opravit, držte každý časovač u jeho vlastníka.