По порядку. У меня большая база доменов в текстовом формате.
- Я обрабатываю сам файл и добавляю домены в базу (около 20 тысяч за 30 секунд). Проблема во втором абзаце.
- После обработки я запускаю процесс чтения доменов из базы данных, затем обработку через CURL (оставляя только сайты с ответом 200) и чтение страницы исходного кода. Процесс проверки 20 тысяч доменов занял около 3 часов. Несмотря на то, что все это время сайт не работал. Просто кинул таймаут.
Вопрос: а можно ли ускорить этот процесс? (запустить скрипт рекурсивно) или реально c хотя бы оставить веб-сервер в рабочем состоянии во время процесса обработки (сервер мощный, но по какой-то причине он все равно дает сбой).
The logi c скрипта (пункт 2).
if($_POST['start'] == "true") {
//...
//SELECT DATABASE
//...
while($allRows) {
$line = $allRows['INPUT_URL'];
//...
// GET CURL STATUS 200, IP adress and HTML code
//...
if($status == "200") {
// strpos HTML code
//...
//add answer to another Database
}
}
}
Настройки завитка:
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgents[array_rand($userAgents)]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);