Я хочу, чтобы следующий код curl был стабильным для 50 соединений с разных ip-адресов, чтобы он мог легко обрабатывать до 50 запросов на соединения одновременно, не зависая и не загружая сервер.
На самом деле я на общем хостинге. но я хочу, чтобы этот скрипт curl делал меньше нагрузки на сервер, даже если .. если в будущем он получит более 50 или 100 запросов одновременно. в противном случае мои ресурсы хостинга могут быть ограничены администратором, если я возьму большую нагрузку на сервер виртуального хостинга.
Еще одна вещь, которую я должен сказать, что каждый запрос извлекает только средний файл 30 КБ с удаленного сервера с этим сценарием curl. Поэтому я думаю, что каждое задание на запрос будет выполнено в течение нескольких секунд менее чем за 3 секунды. потому что размер файла очень маленький.
Также, скажите, пожалуйста, нужно ли модифицировать этот скрипт, например (curl_multi), чтобы одновременно обрабатывать от 50 до 100 небольших запросов? … ИЛИ это прекрасно, и нет необходимости каких-либо изменений. … ИЛИ мне просто нужно внести изменения в настройках общего хостинга php ini через cpanel.
$userid = $_GET['id'];
if (file_exists($userid.".txt") && (filemtime($userid.".txt") > (time() - 3600 * $ttime ))) {
$ffile = file_get_contents($userid.".txt");} else {
$dcurl = curl_init();
$ffile = fopen($userid.".txt", "w+");
curl_setopt($dcurl, CURLOPT_URL,"http://remoteserver.com/data/$userid");
curl_setopt($dcurl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($dcurl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($dcurl, CURLOPT_TIMEOUT, 50);
curl_setopt($dcurl, CURLOPT_FILE, $ffile);
$ffile = curl_exec($dcurl);
if(curl_errno($dcurl)) // check for execution errors
{
echo 'Script error: ' . curl_error($dcurl);
exit;
}
curl_close($dcurl);$ffile = file_get_contents($userid.".txt");}
Вы можете использовать curl_multi
http://php.net/manual/en/function.curl-multi-init.php — описание и пример
Других решений пока нет …