Блокиращо търсене в прокси пул може да задържи Scrapy
Дръжте синхронното извикване на API на прокси пула извън пътя на цикъла от събития на Scrapy и дайте на откриването на крайни точки собствена политика при грешки.
Обхождащият агент има достатъчно конфигурирани едновременни заявки. Все пак той спира, когато поиска от прокси пула поредния адрес. Добавянето на още проксита не променя това спиране.
Често срещан модел на междинен софтуер извиква requests.get(pool_url) вътре в process_request(). Това е синхронна мрежова операция по път, който се очаква да сътрудничи с асинхронната машина на Scrapy. Докато извикването чака, то може да задържи несвързана работа в същата нишка на цикъла от събития.
В задачата има две заявки
Едната заявка получава крайна точка от услугата на пула. Другата използва тази крайна точка, за да се свърже с дестинацията. Измервайте и отчитайте двете поотделно. Бавно API на пула може да направи всяко избрано прокси да изглежда бавно, още преди приложението да се е свързало с него.
Използвайте интеграция за асинхронно откриване, поддържана от инсталираната версия на Scrapy, или получавайте и обновявайте ограничен локален набор от крайни точки извън критичния път на всяка заявка. Ако блокиращата работа трябва да се прехвърли, дайте на този изпълнител собствени лимити и обработка на таймаути; неограничената опашка само премества забавянето.
Не издавайте автоматично още едно извикване за откриване при всяка заявка. Краткотраен кеш или нает пакет могат да намалят зависимостта от услугата на пула, при условие че животът им съответства на действителната политика за крайни точки на услугата.
Определете какво означава неуспешно търсене
Празен или неуспешен отговор на пула не бива тихо да премахва метаданните за проксито и да разрешава директна заявка. Изберете явен резултат: изчакване в рамките на бюджета на задачата, неуспех или използване на одобрена кеширана крайна точка.
Пазете и собствения маршрут на API на пула чист. Ако това е вътрешна услуга, изпращането на нейното частно име на хост през самото прокси, което тя помага да се избере, може да създаде кръгова зависимост.
След като откриването работи, без да блокира несвързана работа, прегледайте обикновената прокси транзакция. Това са отделни поправки и времето им заслужава отделни полета в журнала.