Crawlerul are suficiente cereri concurente configurate. Totuși se oprește de fiecare dată când cere pool-ului de proxy o altă adresă. Adăugarea mai multor proxy-uri nu schimbă acea pauză.

Un model comun de middleware apelează requests.get(pool_url) în interiorul process_request(). Este o operațiune de rețea sincronă pe o cale care ar trebui să coopereze cu motorul asincron al Scrapy. Cât timp apelul așteaptă, poate reține lucru nelegat pe același fir al buclei de evenimente.

Există două cereri în sarcină

O cerere obține un endpoint de la serviciul de pool. Cealaltă folosește acel endpoint pentru a contacta destinația. Măsurați-le și raportați-le separat. Un API de pool lent poate face fiecare proxy ales să pară lent înainte ca aplicația să se fi conectat măcar la el.

Folosiți o integrare de descoperire asincronă acceptată de versiunea Scrapy instalată sau obțineți și reîmprospătați un set local limitat de endpoint-uri în afara căii critice a fiecărei cereri. Dacă lucrul blocant trebuie mutat, dați acelui executor propriile limite și tratarea expirărilor; o coadă nelimitată doar mută întârzierea.

Nu emiteți automat încă un apel de descoperire pentru fiecare cerere. Un cache de scurtă durată sau un lot închiriat pot reduce dependența de serviciul de pool, cu condiția ca durata lor de viață să se potrivească politicii reale de endpoint-uri a serviciului.

Definiți ce înseamnă o căutare eșuată

Un răspuns gol sau eșuat al pool-ului nu ar trebui să elimine în tăcere metadatele proxy și să permită o cerere directă. Alegeți un rezultat explicit: așteptare în bugetul sarcinii, eșec sau folosirea unui endpoint aprobat din cache.

Păstrați liberă și ruta proprie a API-ului de pool. Dacă este un serviciu intern, trimiterea numelui său privat de gazdă prin exact proxy-ul pe care ajută să îl selecteze poate crea o dependență circulară.

După ce descoperirea funcționează fără a bloca lucru nelegat, examinați tranzacția obișnuită prin proxy. Sunt reparații separate, iar cronometrarea lor merită câmpuri separate în jurnal.

Articole similare