Batas waktu per fase dan tenggat total permintaan proxy
Pisahkan batas per fase dari anggaran waktu total operasi melalui proxy, termasuk percobaan ulang dan pembacaan respons.
Batas waktu koneksi dan pembacaan membatasi penantian tertentu. Keduanya belum tentu membatasi seluruh operasi melalui proxy, yang juga dapat mencakup penantian dalam antrean, DNS, CONNECT, TLS, pengalihan, percobaan ulang, dan pembacaan respons.
| Batas | Cakupan |
|---|---|
| Batas waktu koneksi | Pembentukan koneksi menurut definisi klien |
| Batas waktu diam saat membaca | Penantian tanpa kemajuan data yang diharapkan |
| Tenggat total | Durasi yang diizinkan bagi operasi lengkap |
Mulailah dari anggaran operasi
Gunakan tenggat total terdokumentasi milik klien atau mekanisme pembatalan bila tersedia, bersama batas per fase. HTTPX memisahkan penantian kumpulan, koneksi, pembacaan, dan penulisan. Requests menyatakan batas waktunya bukan batas unduhan lengkap. curl menyediakan tenggat transfer total.
Sebagai contoh, tugas dua puluh detik menghabiskan dua detik di antrean, tiga untuk membangun rutenya, dan enam pada pertukaran yang gagal. Percobaan berikutnya memiliki sekitar sembilan detik. Memberi setiap percobaan ulang dua puluh detik baru akan membuang anggaran semula.
Gunakan jam monotonik untuk menghitung waktu yang berlalu. Bawa tenggat absolut atau durasi tersisa melalui lapisan yang memiliki pekerjaan itu. Jika mekanisme pembatalan di sekitarnya tidak dapat menegakkan cakupan yang diperlukan, nyatakan batasan itu secara eksplisit.
Sertakan badan dan pembersihan
Metode yang kembali setelah header dapat meninggalkan pembacaan badan di luar tenggatnya. Tentukan apakah anggaran mencakup pembentukan, unduhan berhingga yang utuh, atau aliran berumur panjang dengan aturan keaktifan tersendiri. Contoh .NET modern untuk pembatalan header dan badan membawa satu token melalui kedua tahap.
Sisakan waktu untuk menutup respons dan menuntaskan pembatalan sebelum percobaan berikutnya mengambil kapasitas kumpulan. Catat fase yang gagal dan waktu yang berlalu; pembacaan berulang yang maju dapat memenuhi batas keaktifan sementara tugas keseluruhan berjalan terlalu lama.
Tenggat gateway ke hulu menjadi milik gateway itu. Setelah mengembalikan 504, anggaran klien yang tidak terpakai tidak dapat memperpanjang percobaan yang telah selesai. Pertahankan setiap pengatur waktu melekat pada pemiliknya saat memutuskan pengaturan mana yang perlu diperbaiki.