Vì sao Requests mở nhiều kết nối hơn pool_maxsize
Dùng pool_block cho một pool có giới hạn, và thêm ngân sách ở cấp ứng dụng khi giới hạn phải bao phủ toàn bộ lưu lượng qua proxy.
Với giá trị mặc định pool_block=False, pool_maxsize giới hạn các kết nối được giữ lại trong pool, không phải mọi kết nối đồng thời. Requests có thể tạo thêm rồi loại bỏ chúng sau đó.
Đối với một pool có giới hạn được các yêu cầu HTTPS của phiên hiện có sử dụng:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Việc gắn chọn các URL đích HTTPS. Các yêu cầu HTTP dùng adapter được gắn dưới http://.
| Đầu vào | Nó kiểm soát gì |
|---|---|
| pool_connections | Bộ quản lý lưu đệm bao nhiêu pool |
| pool_maxsize | Các kết nối trong một pool |
| pool_block=True | Chờ một kết nối từ pool thay vì tạo thêm |
Requests cũng lưu đệm các trình quản lý proxy theo URL proxy. Những giá trị này không tạo thành một giới hạn tổng duy nhất cho danh sách proxy và đích luân phiên. Dùng ngân sách đồng thời ở cấp ứng dụng nếu yêu cầu là mọi công việc đều đi qua một trung gian.
Chặn khiến việc giải phóng phản hồi trở nên thiết yếu: tiêu thụ phần thân hoặc đóng các phản hồi dạng luồng để công việc đang chờ có thể tiếp tục. Adapter của Requests không cung cấp thời gian chờ riêng cho việc chờ pool này trong cách bố trí được trình bày.