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નું એડાપ્ટર આ પૂલ-પ્રતીક્ષા માટે અલગ ટાઇમઆઉટ આપતું નથી.