Scrapy starpniekservera paralēlisms vairākos domēnos
Izmantojiet lejupielādētāja globālo paralēlisma ierobežojumu, kad vairāki mērķa domēni patērē vienu un to pašu starpniekservera kvotu, un pēc tam ņemiet vērā arī citus rāpotājus, kas dala šo kontu.
Ja katrs galamērķis izmanto vienu starpniekservera kontu, šī konta vienlaicīgo pieprasījumu atļauja var tikt iztērēta visos šajos galamērķos. Tikai domēna ierobežojums vien neizsaka šo kopīgo budžetu.
Hipotētiskam kontam, kas atļauj ne vairāk kā 20 vienlaicīgus pieprasījumus, atstājiet nelielu rezervi un iestatiet rāpotāja globālo lejupielādētāja ierobežojumu:
CONCURRENT_REQUESTS = 16
Šis ir ilustratīvs sadalījums, nevis ieteicamā vērtība katram pakalpojumu sniedzējam. Scrapy definē CONCURRENT_REQUESTS kā lejupielādētāja maksimālo vienlaicīgo pieprasījumu skaitu. Domēna līmeņa vadība var vēl vairāk samazināt paralēlismu; tā neaizstāj globālo augšējo robežu.
Iekļaujiet aprēķinā arī citus rāpotājus. Divi neatkarīgi rāpotāji, kuriem katram atļauti 16 pieprasījumi, kopā var pārsniegt kopīgu atļauju 20 apmērā. Apzināti sadaliet budžetu vai piemērojiet kopīgu ierobežojumu vietā, kur šie klienti satiekas.
Noskaidrojiet arī, ko pakalpojumu sniedzējs skaita. HTTP pieprasījumi, atvērti TCP savienojumi, aktīvi tuneļi un pieprasījumi sekundē ir atšķirīgi lielumi. Pastāvīgi savienojumi un multipleksēšana var izraisīt to skaitļu atšķirības. Tāpēc pieprasījumu paralēlisma iestatījums nav pilnīgs savienojumu vai ātruma ierobežotājs.
Saglabājiet mērķa vietnes tempu kā atsevišķu ierobežojumu. Zemāks paralēlisms vai lejupielādes aizture joprojām var būt piemērota atsevišķam galamērķim pat tad, ja starpniekservera kontam ir neizmantota jauda.