Giới hạn thời gian theo từng giai đoạn và thời hạn tổng của yêu cầu proxy
Tách biệt giới hạn theo từng giai đoạn khỏi ngân sách thời gian tổng của một thao tác qua proxy, bao gồm các lần thử lại và việc đọc phản hồi.
Giới hạn thời gian kết nối và đọc chỉ giới hạn những khoảng chờ cụ thể. Chúng không nhất thiết giới hạn toàn bộ thao tác qua proxy, vốn có thể còn gồm chờ trong hàng đợi, DNS, CONNECT, TLS, chuyển hướng, thử lại và đọc phản hồi.
| Giới hạn | Phạm vi |
|---|---|
| Giới hạn kết nối | Thiết lập kết nối theo định nghĩa của máy khách |
| Giới hạn không hoạt động khi đọc | Một khoảng chờ mà không có tiến triển dữ liệu như mong đợi |
| Thời hạn tổng | Thời lượng được phép của toàn bộ thao tác |
Bắt đầu từ ngân sách của thao tác
Hãy dùng thời hạn tổng đã được ghi trong tài liệu của máy khách hoặc cơ chế hủy khi có, song song với các giới hạn giai đoạn. HTTPX tách riêng các khoảng chờ nhóm kết nối, kết nối, đọc và ghi. Requests nêu rõ giới hạn của nó không phải là giới hạn tải xuống trọn vẹn. curl cung cấp thời hạn truyền tải tổng.
Ví dụ, một công việc hai mươi giây dành hai giây trong hàng đợi, ba giây thiết lập tuyến và sáu giây cho một lần trao đổi thất bại. Lần thử tiếp theo của nó còn khoảng chín giây. Việc cấp hai mươi giây mới cho mỗi lần thử lại sẽ vứt bỏ ngân sách ban đầu.
Dùng đồng hồ đơn điệu để hạch toán thời gian đã trôi qua. Mang theo một thời hạn tuyệt đối hoặc thời lượng còn lại qua các tầng sở hữu công việc. Nếu cơ chế hủy xung quanh không thể thực thi phạm vi cần thiết, hãy nêu rõ giới hạn đó.
Bao gồm phần thân và việc dọn dẹp
Một phương thức trả về sau phần tiêu đề có thể để việc đọc phần thân nằm ngoài thời hạn của nó. Hãy quyết định ngân sách có bao trùm việc thiết lập, một lần tải xuống hữu hạn trọn vẹn, hay một luồng dài hạn với quy tắc sống riêng. Ví dụ hiện đại trong .NET về hủy phần tiêu đề và phần thân mang một token qua cả hai giai đoạn.
Chừa thời gian để đóng các phản hồi và hoàn tất việc hủy trước khi lần thử tiếp theo chiếm dung lượng nhóm. Ghi lại giai đoạn thất bại và thời gian đã trôi qua; những lần đọc lặp lại có tiến triển có thể thỏa mãn giới hạn không hoạt động trong khi công việc tổng thể chạy quá lâu.
Thời hạn của cổng nối lên phía trên thuộc về cổng đó. Sau khi nó trả về 504, ngân sách máy khách chưa dùng không thể kéo dài lần thử đã hoàn tất. Hãy giữ mỗi bộ đếm thời gian gắn với chủ sở hữu của nó khi quyết định cài đặt nào cần sửa.