బ్లాకింగ్ ప్రాక్సీ-పూల్ లుకప్ Scrapyని నిలిపివేయగలదు
Scrapy యొక్క ఈవెంట్-లూప్ మార్గం నుండి సింక్రోనస్ ప్రాక్సీ-పూల్ API కాల్ను బయట ఉంచి, ఎండ్పాయింట్ ఆవిష్కరణకు దాని స్వంత వైఫల్య విధానాన్ని ఇవ్వండి.
క్రాలర్లో సరిపడా సమకాలీన అభ్యర్థనలు కాన్ఫిగర్ చేయబడ్డాయి. అయినప్పటికీ అది ప్రాక్సీ పూల్ నుండి మరో చిరునామా అడిగిన ప్రతిసారీ ఆగిపోతుంది. మరిన్ని ప్రాక్సీలను జోడించడం ఆ ఆగుడును తాకదు.
సాధారణ మిడిల్వేర్ నమూనా requests.get(pool_url) ను process_request() లోపల ను పిలుస్తుంది. ఇది Scrapy యొక్క అసమకాలిక ఇంజిన్తో సహకరించాల్సిన మార్గంలో సింక్రోనస్ నెట్వర్క్ ఆపరేషన్. కాల్ వేచి ఉన్నప్పుడు, అది అదే ఈవెంట్-లూప్ థ్రెడ్లోని సంబంధం లేని పనిని ఆపేయవచ్చు.
పనిలో రెండు అభ్యర్థనలు ఉన్నాయి
ఒక అభ్యర్థన పూల్ సేవ నుండి ఎండ్పాయింట్ను పొందుతుంది. మరొకటి ఆ ఎండ్పాయింట్ను గమ్యస్థానంతో సంబంధం పెట్టుకోవడానికి ఉపయోగిస్తుంది. రెండింటినీ విడివిడిగా కొలిచి నివేదించండి. నెమ్మదిగా ఉన్న పూల్ API, అప్లికేషన్ దానితో కనెక్ట్ కాకముందే ఎంపిక చేసిన ప్రతి ప్రాక్సీని నెమ్మదిగా కనిపించేలా చేయగలదు.
ఇన్స్టాల్ చేసిన Scrapy వెర్షన్ మద్దతు ఇచ్చే అసమకాలిక ఆవిష్కరణ ఇంటిగ్రేషన్ను ఉపయోగించండి, లేదా ప్రతి అభ్యర్థన యొక్క క్లిష్టమైన మార్గం వెలుపల పరిమిత స్థానిక ఎండ్పాయింట్ సెట్ను పొంది రిఫ్రెష్ చేయండి. బ్లాకింగ్ పనిని తరలించాల్సి ఉంటే, ఆ ఎగ్జిక్యూటర్కు దాని స్వంత పరిమితులు మరియు టైమౌట్ నిర్వహణను ఇవ్వండి; అపరిమిత క్యూ ఆలస్యాన్ని స్థానం మారుస్తుంది మాత్రమే.
ప్రతి అభ్యర్థనకు స్వయంచాలకంగా మరో ఆవిష్కరణ కాల్ చేయవద్దు. స్వల్పకాలిక కాష్ లేదా లీజుకు తీసుకున్న బ్యాచ్, సేవ యొక్క నిజమైన ఎండ్పాయింట్ విధానానికి దాని జీవితకాలం సరిపోతే పూల్ సేవపై ఆధారపడటాన్ని తగ్గించగలదు.
విఫలమైన లుకప్ అంటే ఏమిటో నిర్వచించండి
ఖాళీ లేదా విఫలమైన పూల్ ప్రతిస్పందన ప్రాక్సీ మెటాడేటాను నిశ్శబ్దంగా తొలగించి నేరుగా అభ్యర్థనను అనుమతించకూడదు. స్పష్టమైన ఫలితాన్ని ఎంచుకోండి: పని బడ్జెట్ లోపు వేచి ఉండటం, విఫలమవడం, లేదా ఆమోదించిన కాష్ చేసిన ఎండ్పాయింట్ను ఉపయోగించడం.
పూల్ API యొక్క సొంత మార్గాన్ని కూడా ఖాళీగా ఉంచండి. అది అంతర్గత సేవ అయితే, దాని ప్రైవేట్ హోస్ట్నేమ్ను దానిని ఎంచుకోవడంలో సహాయపడే అదే ప్రాక్సీ ద్వారా పంపడం చక్రీయ ఆధారపడటాన్ని సృష్టించగలదు.
ఆవిష్కరణ సంబంధం లేని పనిని బ్లాక్ చేయకుండా పనిచేసిన తర్వాత, సాధారణ ప్రాక్సీ లావాదేవీని పరిశీలించండి. అవి వేర్వేరు మరమ్మతులు, మరియు వాటి సమయం లాగ్లో వేర్వేరు ఫీల్డ్లకు అర్హమైనది.