Thư viện phổ biến của Requests của Python được cho là an toàn chỉ trên trang chủ của nó, nhưng không cung cấp thêm chi tiết nào. Nếu tôi gọi requests.session()
, tôi có thể vượt qua một cách an toàn sau đó đối tượng này với nhiều chủ đề như vậy:Đối tượng Session từ chuỗi thư viện Yêu cầu của Python có an toàn không?
session = requests.session()
for i in xrange(thread_count):
threading.Thread(
target=target,
args=(session,),
kwargs={}
)
và đưa ra yêu cầu sử dụng hồ bơi kết nối giống nhau ở nhiều chủ đề?
Nếu vậy, đây có phải là cách tiếp cận được khuyến nghị hay mỗi thread phải có hồ bơi kết nối riêng? (Giả sử tổng kích thước của tất cả các nhóm kết nối riêng lẻ được cộng lại với kích thước của một hồ bơi kết nối lớn, giống như ở trên.) Các ưu và khuyết điểm của mỗi phương pháp tiếp cận là gì?
Bạn đã tìm ra cái nào tốt hơn? Tôi hiện đang chạy vào gần như cùng một câu hỏi. Tôi đã suy nghĩ một phiên mới cho mỗi thread để không tắc nghẽn tất cả các yêu cầu trong một hồ bơi kết nối duy nhất. –
@Marcel Wilson Không chính xác. Mặc dù cho một trong các dự án của tôi, nơi tôi đã sử dụng một đối tượng phiên để yêu cầu cùng một URL hơn và hơn nữa, tôi đã gửi cùng một đối tượng phiên cho tất cả các chủ đề. Ứng dụng này dường như hoạt động, nhưng tôi vẫn không chắc chắn cách tiếp cận tốt hơn là gì. Tuy nhiên, lưu ý rằng vấn đề của tôi không bị nghẽn cổ chai các kết nối, mà thay vào đó là mở quá nhiều kết nối và gửi quá nhiều yêu cầu cùng một lúc. – dg123
Yêu cầu được xây dựng trên đầu trang của urllib3. Chủ đề an toàn của các yêu cầu phần lớn là do thread-an toàn của urllib3, các doucmentation mà thảo luận về thread an toàn chi tiết hơn. – selllikesybok