Улучшение Улучшение "Задержка запросов" (Request delay) в настройках Net::HTTP парсера

Gorn

A-Parser Enterprise License
A-Parser Enterprise
В дополнение к задаче Улучшение Настройки потоков - Proxy strategy
https://a-parser.com/threads/8144/
хочу предложить близкую по смыслу задачу.

Часто приходится парсить сайта, которые банят прокси при частом их использовании.
Я спрашивал совета об этом в сапорте, посоветовали ставить "Задержка запросов" в N секунд.
В принципе помогает, но!
Если внимательно посмотреть логи с такой настройкой, то видно, что поток останавливается на N секунд - выдерживает заданную паузу,
потом берет прокcи и качает заданную в УРЛ страницу.
5sec.png
То есть фактически ПОТОК ПРОСТАИВАЕТ N секунд!!!
А зачем ему простаивать, если есть другие рабочие прокси, которые уже давно "отдыхают"?
Предлагаю вместо простаивания потока (Request delay) выбирать из рабочих прокси ту, которая не работала N секунд и сразу пускать поток в работу, пауза будет обеспечиваться тем, что выбранная прокси не работала N или более секунд.
Например ввести еще параметр к каждой прокси - дата-время последнего использования (окончания скачивания УРЛ).
Тогда для обеспечения паузы в N секунд, можно будет вместо остановки потока выбирать прокси, которая не работала последние N секунд, но если такой нет, тогда поток будет ждать, когда такая появится.
Можно еще сделать выбор - какую прокси брать - отдохнувшую N секунд или максимально отдохнувшую.
 
Первоочередное назначение Request delay - это снижение нагрузки на целевой сайт с целью снизить вероятность блокировок и/или падения сайта.
 
Назад
Верх