Попробуйте обернуть curl_init
и curl_close
в каждом запросе.
Примерно так:
function callurl($myurl) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $myurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec ($ch);
curl_close ($ch);
return $response;
}
И вам придется вызывать эту функцию для каждого URL, например, используя al oop for.
Также попробуйте выполнить тестирование только с 10-20 запросами до go BIG. Учтите, что 2500 запросов, если каждый запрос занимает 1 секунду, переводятся на 41 минуту активности. По умолчанию ни один сервер не настроен на сохранение активности PHP в течение 40 минут. Вы можете изменить эти настройки на сервере, если у вас есть доступ к серверу.
Также возможно, что вы застряли, потому что на сервере недостаточно ресурсов для одновременного выполнения большого количества запросов. В идеале, вам необходимо точно настроить конфигурацию вашего сервера для достижения лучшей производительности.
Также рассмотрите возможность использования
curl_multi_init для повышения производительности и асинхронных запросов.
Но это не гарантирует, что запрос будет отброшен из-за ВРЕМЕНИ. Настолько точная настройка сервера все еще необходима.
Проверьте также этот пост о том, как увеличить ограничение по времени :