მცოცავს საკმარისი პარალელური მოთხოვნა აქვს კონფიგურირებული. მაინც ჩერდება ყოველ ჯერზე, როცა პროქსი-პულს სხვა მისამართს სთხოვს. მეტი პროქსის დამატება ამ გაჩერებას არ ეხება.

ჩვეულებრივი მიდლვეარის ნიმუში requests.get(pool_url)-ს იძახებს process_request()-ის შიგნით. ეს სინქრონული ქსელური ოპერაციაა გზაზე, რომელიც Scrapy-ის ასინქრონულ ძრავასთან უნდა თანამშრომლობდეს. სანამ გამოძახება ელოდება, მან შეიძლება შეაჩეროს დაუკავშირებელი სამუშაო იმავე მოვლენათა ციკლის ნაკადში.

სამუშაოში ორი მოთხოვნაა

ერთი მოთხოვნა ბოლო წერტილს იღებს პულის სერვისისგან. მეორე იყენებს ამ წერტილს დანიშნულებასთან დასაკავშირებლად. გაზომეთ და მოახსენეთ ისინი ცალკე. ნელი პულის API-მ შეიძლება ყოველი არჩეული პროქსი ნელი ჩაატაროს, სანამ აპლიკაცია მასთან დაკავშირდება კიდეც.

გამოიყენეთ ასინქრონული აღმოჩენის ინტეგრაცია, რომელსაც დაყენებული Scrapy ვერსია მხარს უჭერს, ან მიიღეთ და განაახლეთ შეზღუდული ლოკალური ბოლო წერტილების ნაკრები ყოველი მოთხოვნის კრიტიკული გზის გარეთ. თუ ბლოკირებადი სამუშაო უნდა გადავიდეს, მიეცით ამ შემსრულებელს საკუთარი ლიმიტები და ვადების დამუშავება; შეუზღუდავი რიგი მხოლოდ გადაადგილებს დაყოვნებას.

ნუ გამოსცემთ ავტომატურად კიდევ ერთ აღმოჩენის გამოძახებას ყოველი მოთხოვნისთვის. ხანმოკლე ქეში ან იჯარით აღებული პარტია შეიძლება ამცირებდეს პულის სერვისზე დამოკიდებულებას, თუ მისი სიცოცხლის ხანგრძლივობა შეესაბამება სერვისის რეალურ ბოლო წერტილების პოლიტიკას.

განსაზღვრეთ, რას ნიშნავს წარუმატებელი ძიება

ცარიელი ან წარუმატებელი პულის პასუხი არ უნდა ჩუმად წაშალოს პროქსის მეტამონაცემები და დაუშვას პირდაპირი მოთხოვნა. აირჩიეთ ცხადი შედეგი: ლოდინი სამუშაოს ბიუჯეტში, წარუმატებლობა, ან დამტკიცებული ქეშირებული ბოლო წერტილის გამოყენება.

პულის API-ის საკუთარი გზაც თავისუფალი შეინახეთ. თუ ეს შიდა სერვისია, მისი პირადი ჰოსტსახელის გაშვება იმ პროქსით, რომელიც მის არჩევას ეხმარება, შეიძლება ციკლური დამოკიდებულება შექმნას.

როცა აღმოჩენა იმუშავებს დაუკავშირებელი სამუშაოს დაბლოკვის გარეშე, შეამოწმეთ ჩვეულებრივი პროქსის ტრანზაქცია. ეს ცალკე შეკეთებებია და მათი დრო ჟურნალში ცალკე ველებს იმსახურებს.

დაკავშირებული სტატიები