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 గమ్యస్థాన URLలను ఎంచుకుంటుంది. HTTP అభ్యర్థనలు http:// కింద మౌంట్ చేసిన అడాప్టర్ను ఉపయోగిస్తాయి.
| ఇన్పుట్ | ఇది ఏమి నియంత్రిస్తుంది |
|---|---|
| pool_connections | మేనేజర్ ఎన్ని పూల్లను కాష్ చేస్తుంది |
| pool_maxsize | ఒక పూల్ లోపల కనెక్షన్లు |
| pool_block=True | అదనపు సృష్టించే బదులు పూల్ కనెక్షన్ కోసం వేచి ఉండటం |
Requests ప్రాక్సీ URL ప్రకారం ప్రాక్సీ మేనేజర్లను కూడా కాష్ చేస్తుంది. ఈ విలువలు తిరిగే ప్రాక్సీలు మరియు గమ్యస్థానాల జాబితా అంతటా ఒకే మొత్తం పరిమితిని ఏర్పరచవు. మొత్తం పని ఒకే మధ్యవర్తి ద్వారా జరగాలని అవసరమైతే అప్లికేషన్ స్థాయి సమకాలికత బడ్జెట్ను ఉపయోగించండి.
బ్లాకింగ్ ప్రతిస్పందనలను విడుదల చేయడాన్ని అనివార్యం చేస్తుంది: బాడీలను వినియోగించండి లేదా స్ట్రీమింగ్ ప్రతిస్పందనలను మూసివేయండి తద్వారా వేచి ఉన్న పని కొనసాగగలదు. చూపిన అమరికలో Requests యొక్క అడాప్టర్ ఈ పూల్ నిరీక్షణకు ప్రత్యేక టైమౌట్ను అందించదు.