מדוע Requests פותח יותר חיבורים מאשר pool_maxsize
השתמשו ב-pool_block עבור מאגר מוגבל, והוסיפו תקציב ברמת היישום כאשר המגבלה חייבת לכסות את כל התעבורה דרך פרוקסי.
עם ברירת המחדל pool_block=False, pool_maxsize מגביל את החיבורים הנשמרים במאגר, ולא כל חיבור במקביל. Requests יכול ליצור חיבורים נוספים ואחר כך להשליך אותם.
עבור מאגר מוגבל שבו משתמשות בקשות ה-HTTPS של הפעלה קיימת:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)ההרכבה בוחרת כתובות URL של יעד HTTPS. בקשות HTTP משתמשות במתאם שמותקן תחת http://.
| קלט | מה זה שולט |
|---|---|
| pool_connections | כמה מאגרים המנהל שומר במטמון |
| pool_maxsize | חיבורים בתוך מאגר |
| pool_block=True | המתנה לחיבור מהמאגר במקום יצירת חיבור נוסף |
Requests גם שומר במטמון מנהלי פרוקסי לפי כתובת ה-URL של הפרוקסי. ערכים אלה אינם יוצרים תקרה כוללת אחת על פני רשימה מתחלפת של פרוקסים ויעדים. השתמשו בתקציב מקביליות ברמת היישום אם הדרישה היא שכל העבודה תעבור דרך מתווך אחד.
חסימה הופכת את שחרור התגובות להכרחי: צרכו את הגופים או סגרו תגובות בזרימה כדי שעבודה ממתינה תוכל להתקדם. המתאם של Requests אינו מספק פסק זמן נפרד להמתנה זו למאגר בסידור המוצג.