ક્રોલરમાં પૂરતી સમવર્તી વિનંતીઓ ગોઠવેલી છે. તેમ છતાં જ્યારે તે પ્રોક્સી પૂલને બીજું સરનામું પૂછે છે ત્યારે અટકી જાય છે. વધુ પ્રોક્સી ઉમેરવાથી તે અટકાવ બદલાતો નથી.

સામાન્ય મિડલવેર પેટર્ન requests.get(pool_url) ને process_request() ની અંદર કૉલ કરે છે. આ એક સિંક્રનસ નેટવર્ક ક્રિયા છે એવા માર્ગ પર જે Scrapy ના અસિંક્રનસ એન્જિન સાથે સહકાર આપે તેવી અપેક્ષા છે. કૉલ રાહ જોતી વખતે તે એ જ ઇવેન્ટ-લૂપ થ્રેડ પર અસંબંધિત કામને અટકાવી શકે છે.

કામમાં બે વિનંતીઓ છે

એક વિનંતી પૂલ સેવા પાસેથી એન્ડપોઇન્ટ મેળવે છે. બીજી તે એન્ડપોઇન્ટનો ઉપયોગ ગંતવ્ય સાથે સંપર્ક કરવા માટે કરે છે. બંનેને અલગ રીતે માપો અને જાણ કરો. ધીમી પૂલ API એપ્લિકેશન તેની સાથે જોડાય તે પહેલાં જ દરેક પસંદ કરેલા પ્રોક્સીને ધીમો દેખાડી શકે છે.

ઇન્સ્ટોલ કરેલા Scrapy સંસ્કરણ દ્વારા સમર્થિત અસિંક્રનસ શોધ સંકલન વાપરો, અથવા દરેક વિનંતીના નિર્ણાયક માર્ગની બહાર મર્યાદિત સ્થાનિક એન્ડપોઇન્ટ સમૂહ મેળવો અને તાજો કરો. જો બ્લોકિંગ કામ ખસેડવું પડે, તો તે એક્ઝિક્યુટરને તેની પોતાની મર્યાદાઓ અને સમયમર્યાદા સંભાળ આપો; અમર્યાદિત કતાર ફક્ત વિલંબનું સ્થાન બદલે છે.

દરેક વિનંતી માટે આપમેળે બીજો શોધ કૉલ ન કરો. ટૂંકા ગાળાની કેશ અથવા ભાડે લીધેલી બેચ પૂલ સેવા પરની નિર્ભરતા ઘટાડી શકે છે, જો તેનું જીવનકાળ સેવાની વાસ્તવિક એન્ડપોઇન્ટ નીતિ સાથે મેળ ખાય.

નિષ્ફળ લુકઅપનો અર્થ નક્કી કરો

ખાલી અથવા નિષ્ફળ પૂલ પ્રતિસાદે પ્રોક્સી મેટાડેટા ચૂપચાપ દૂર કરીને સીધી વિનંતીની મંજૂરી આપવી ન જોઈએ. સ્પષ્ટ પરિણામ પસંદ કરો: કાર્યના બજેટમાં રાહ જોવી, નિષ્ફળ જવું, અથવા મંજૂર કેશ કરેલ એન્ડપોઇન્ટ વાપરવો.

પૂલ API નો પોતાનો માર્ગ પણ ખાલી રાખો. જો તે આંતરિક સેવા હોય, તો તેનું ખાનગી હોસ્ટનામ તે પસંદ કરવામાં મદદ કરતા પ્રોક્સીમાંથી મોકલવાથી ચક્રીય નિર્ભરતા ઊભી થઈ શકે છે.

શોધ અસંબંધિત કામને અવરોધ્યા વિના કામ કરે પછી, સામાન્ય પ્રોક્સી વ્યવહાર તપાસો. આ અલગ સમારકામ છે, અને તેમનો સમય લોગમાં અલગ ક્ષેત્રોને પાત્ર છે.

સંબંધિત લેખો