Нужно парсить большое количество сайтов (около 30-50к). В начале я выбрал для этих целей мультикурл, сам написал пару классов, проверил на небольшом количестве файлов, все было ок, но как только попытался запустить на большем количестве сайтов(где-то 300-1000) начинались какие-то проблемы. Первые сайты обрабатывались, а остальная часть просто не загружалась. Причем если взять те сайты которые не загрузились и запустить отдельно, то они нормально отрабатывали. В самописных классах не было системы для отображения ошибок, поэтому не знал в чем дело толком.
Дальше переписал все с помощью этой
библиотеки , которая использует ReactPHP и парсинг по DOM-структуре. По времени работает так же, но опять та же проблема, после н-го количества сайтов перестает работать. Тут есть система ошибок, вот что пишет:
Connection to XXX:80 failed during DNS lookup: DNS query for XXX failed: too many retries.
Запускаю сайты с этой ошибкой отдельно - все отрабатывает.
Подскажите пожалуйста, что не так и как выйти из этой ситуации?
Код примерно такой:
$client = new Browser($loop, $connector);
$parser = new \app\VersionParser($client, $loop);
$parser->parse($urls);
$loop->run();