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)ماؤنٹ HTTPS منزل کے URLs منتخب کرتا ہے۔ HTTP درخواستیں http:// کے تحت لگائے گئے اڈاپٹر کو استعمال کرتی ہیں۔
| ان پٹ | یہ کیا کنٹرول کرتا ہے |
|---|---|
| pool_connections | مینیجر کتنے پول کیش کرتا ہے |
| pool_maxsize | ایک پول کے اندر کنکشنز |
| pool_block=True | اضافی بنانے کی بجائے پول کنکشن کا انتظار کرنا |
Requests پراکسی URL کے حساب سے پراکسی مینیجرز بھی کیش کرتا ہے۔ یہ اقدار گھومتی پراکسیوں اور منزلوں کی فہرست پر ایک مجموعی حد نہیں بناتیں۔ اگر ضرورت یہ ہو کہ سارا کام ایک ہی واسطے سے گزرے تو ایپلیکیشن کی سطح کا ہم وقتی بجٹ استعمال کریں۔
بلاکنگ جوابات کو چھوڑنا ناگزیر بناتی ہے: جسم استعمال کریں یا اسٹریمنگ جوابات بند کریں تاکہ منتظر کام آگے بڑھ سکے۔ دکھائی گئی ترتیب میں Requests کا اڈاپٹر اس پول انتظار کے لیے الگ ٹائم آؤٹ فراہم نہیں کرتا۔