Kaapijalla on riittävästi rinnakkaisia pyyntöjä määritettynä. Silti se pysähtyy aina, kun se pyytää välityspalvelinpoolilta uuden osoitteen. Useampien välityspalvelinten lisääminen ei vaikuta tähän pysähdykseen.

Yleinen middleware-kaava kutsuu requests.get(pool_url) kohdassa process_request(). Se on synkroninen verkkotoiminto polulla, jonka odotetaan toimivan yhteistyössä Scrapy'n asynkronisen moottorin kanssa. Kun kutsu odottaa, se voi pidätellä asiaankuulumatonta työtä samassa tapahtumasilmukan säikeessä.

Työssä on kaksi pyyntöä

Toinen pyyntö hakee päätepisteen poolipalvelusta. Toinen käyttää tätä päätepistettä yhteydenottoon kohteeseen. Mittaa ja raportoi ne erikseen. Hidas poolin API voi saada jokaisen valitun välityspalvelimen näyttämään hitaalta jo ennen kuin sovellus on edes yhdistänyt siihen.

Käytä asynkronista etsintäintegraatiota, jota asennettu Scrapy-versio tukee, tai hanki ja päivitä rajoitettu paikallinen päätepistejoukko jokaisen pyynnön kriittisen polun ulkopuolella. Jos estävä työ on siirrettävä, anna sille suorittajalle omat rajat ja aikakatkaisujen käsittely; rajoittamaton jono vain siirtää viivettä.

Älä lähetä automaattisesti uutta etsintäkutsua jokaista pyyntöä varten. Lyhytaikainen välimuisti tai vuokrattu erä voi vähentää riippuvuutta poolipalvelusta, kunhan sen elinikä sopii palvelun todelliseen päätepistekäytäntöön.

Määrittele, mitä epäonnistunut haku tarkoittaa

Tyhjä tai epäonnistunut poolin vastaus ei saisi hiljaa poistaa välityspalvelimen metatietoja ja sallia suoraa pyyntöä. Valitse selkeä lopputulos: odota tehtävän budjetin puitteissa, epäonnistu tai käytä hyväksyttyä välimuistiin tallennettua päätepistettä.

Pidä myös poolin API:n oma reitti vapaana. Jos se on sisäinen palvelu, sen yksityisen isäntänimen lähettäminen juuri sen välityspalvelimen kautta, jonka valinnassa se auttaa, voi luoda kehäriippuvuuden.

Kun etsintä toimii estämättä asiaankuulumatonta työtä, tarkastele tavallista välityspalvelintapahtumaa. Ne ovat erillisiä korjauksia, ja niiden ajoitus ansaitsee erilliset kentät lokiin.

Aiheeseen liittyvät artikkelit