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 இன் அடாப்டர் இந்தக் குளக் காத்திருப்பிற்கு தனி நேர வரம்பை வழங்குவதில்லை.