Временските ограничувања за поврзување и читање ограничуваат одредени чекања. Тие не мора нужно да ограничат цела операција преку прокси, која може да вклучува и чекање во ред, DNS, CONNECT, TLS, пренасочувања, повторни обиди и читање на одговорот.

ОграничувањеОпфат
Ограничување за поврзувањеВоспоставување на врската според дефиницијата на клиентот
Ограничување за неактивност при читањеЧекање без очекуваниот напредок на податоците
Вкупен рокДозволено времетраење на целата операција

Започнете со буџетот на операцијата

Користете го документираниот вкупен рок на клиентот или механизмот за откажување кога е достапен, заедно со ограничувањата по фази. HTTPX ги одвојува чекањата за базенот, поврзувањето, читањето и пишувањето. Requests наведува дека неговото ограничување не е ограничување за целосно преземање. curl обезбедува рок за вкупен пренос.

На пример, задача од дваесет секунди троши две секунди во ред, три за воспоставување на маршрутата и шест на неуспешна размена. Нејзиниот следен обид има околу девет секунди. Давање нови дваесет секунди на секој повторен обид би го отфрлило првобитниот буџет.

Користете монотон часовник за пресметка на изминатото време. Пренесувајте апсолутен рок или преостанато времетраење низ слоевите што ја поседуваат работата. Ако околниот механизам за откажување не може да го наметне потребниот опфат, направете го тоа ограничување експлицитно.

Вклучете го телото и чистењето

Метод што се враќа по заглавијата може да го остави читањето на телото надвор од неговиот рок. Одлучете дали буџетот опфаќа воспоставување, целосно конечно преземање или долготраен тек со посебни правила за живост. Современ пример во .NET за откажување на заглавија и тело пренесува еден токен низ двете фази.

Оставете време за затворање на одговорите и завршување на откажувањето пред следниот обид да заземе капацитет од базенот. Запишете ја неуспешната фаза и изминатото време; повторените читања што напредуваат можат да ги задоволат ограничувањата за неактивност додека вкупната работа трае предолго.

Рокот на портата кон надводниот дел и припаѓа на таа порта. Откако ќе врати 504, неискористениот клиентски буџет не може да го продолжи завршениот обид. Држете го секој тајмер врзан за неговиот сопственик кога одлучувате кое поставување треба да се исправи.

Поврзани статии