Limity czasu połączenia i odczytu ograniczają określone oczekiwania. Nie muszą ograniczać całej operacji przez proxy, która może obejmować także oczekiwanie w kolejce, DNS, CONNECT, TLS, przekierowania, ponowienia i odczyt odpowiedzi.

LimitZakres
Limit czasu połączeniaNawiązanie połączenia według definicji klienta
Limit bezczynności odczytuOczekiwanie bez spodziewanego postępu danych
Termin całkowityDopuszczalny czas trwania całej operacji

Zacznij od budżetu operacji

Używaj udokumentowanego całkowitego terminu klienta lub mechanizmu anulowania, gdy jest dostępny, razem z limitami faz. HTTPX rozdziela oczekiwania puli, połączenia, odczytu i zapisu. Requests stwierdza, że jego limit nie jest ograniczeniem pełnego pobierania. curl udostępnia limit całkowitego transferu.

Na przykład zadanie dwudziestosekundowe spędza dwie sekundy w kolejce, trzy na budowę trasy i sześć na nieudanej wymianie. Jego następna próba ma około dziewięciu sekund. Danie każdej ponownej próbie świeżych dwudziestu sekund odrzuciłoby pierwotny budżet.

Do rozliczania upływu czasu używaj zegara monotonicznego. Przenoś termin bezwzględny lub pozostały czas przez warstwy, które posiadają pracę. Jeśli otaczający mechanizm anulowania nie potrafi wymusić wymaganego zakresu, wyraźnie to zaznacz.

Uwzględnij treść i sprzątanie

Metoda zwracająca po nagłówkach może pozostawić odczyt treści poza swoim terminem. Zdecyduj, czy budżet obejmuje nawiązanie, pełne skończone pobieranie czy długotrwały strumień z osobnymi regułami żywotności. Nowoczesny przykład .NET anulowania nagłówków i treści przenosi jeden token przez oba etapy.

Zostaw czas na zamknięcie odpowiedzi i dokończenie anulowania, zanim następna próba zajmie pojemność puli. Zapisuj nieudaną fazę i upływ czasu; powtarzane odczyty robiące postęp mogą spełniać limity bezczynności, podczas gdy całe zadanie trwa zbyt długo.

Termin bramy wobec źródła należy do tej bramy. Gdy zwróci 504, niewykorzystany budżet klienta nie może przedłużyć zakończonej próby. Trzymaj każdy timer przypisany do jego właściciela, decydując, które ustawienie wymaga poprawki.

Powiązane artykuły