IdFox
Новичок
Зависание сервера при считывании из сокетов (PHP)
День добрый всем
Такой вопрос
Есть php скрипт. Задача его основная скачивать файлы из сети
Проблема вот какая. Есть сервер с неочень быстрым соединением
При попытке скачать оттуда файл загрузка идет к примеру 50-80 секунд
Так вот пока енти 50 секунд сервер не пройдут, то сайт не обрабатывает другие запросы и как бы висит...
То есть я запускаю скрипт данный, а другой скрипт не обрабатывается пока данный не выполнится
Чтение файла из потока идет таким макаром
---
$headers = "POST $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= $accept;
$headers .= $accept_language;
$headers .= $accept_charset;
$headers .= $user_agent;
$headers .= $referer;
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen ($req_data)."\r\n";
$headers .= "\r\n";
$headers .= $req_data;
$fp_inet = fsockopen ($host, 80, $errno, $errstr, 60);
if (!$fp_inet) {echo "Ошибка! Невозможно подключиться!<br/>"; exit;}
fwrite ($fp_inet, $headers);
while ($file != "\r\n") $file = fgets($fp_inet, 128);
$data_file = "data.html";
$fp_file = fopen($data_file, "w");
while (!feof($fp_inet)) fwrite($fp_file, fgets($fp_inet, 8192));
fclose ($fp_file);
fclose ($fp_inet);
Вся загвоздка в том что пока строка while (!feof($fp_inet)) fwrite($fp_file, fgets($fp_inet, 8192)); не выполнится - как раз те самые 50 сек сервер как бы не робит
Я так понимаю может серв все свои ресурсы на скачку файла отдает чтоли...
Можно ли как нить приоритет процесса данного понизить чтоли...
То есть мне не так важн чтоб файл быстро скачался, главн чтобы скачался - хоть за 20 минут
Лишь бы сайт продолжал свою работу
Заранее спс за ответ
День добрый всем
Такой вопрос
Есть php скрипт. Задача его основная скачивать файлы из сети
Проблема вот какая. Есть сервер с неочень быстрым соединением
При попытке скачать оттуда файл загрузка идет к примеру 50-80 секунд
Так вот пока енти 50 секунд сервер не пройдут, то сайт не обрабатывает другие запросы и как бы висит...
То есть я запускаю скрипт данный, а другой скрипт не обрабатывается пока данный не выполнится
Чтение файла из потока идет таким макаром
---
$headers = "POST $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= $accept;
$headers .= $accept_language;
$headers .= $accept_charset;
$headers .= $user_agent;
$headers .= $referer;
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen ($req_data)."\r\n";
$headers .= "\r\n";
$headers .= $req_data;
$fp_inet = fsockopen ($host, 80, $errno, $errstr, 60);
if (!$fp_inet) {echo "Ошибка! Невозможно подключиться!<br/>"; exit;}
fwrite ($fp_inet, $headers);
while ($file != "\r\n") $file = fgets($fp_inet, 128);
$data_file = "data.html";
$fp_file = fopen($data_file, "w");
while (!feof($fp_inet)) fwrite($fp_file, fgets($fp_inet, 8192));
fclose ($fp_file);
fclose ($fp_inet);
Вся загвоздка в том что пока строка while (!feof($fp_inet)) fwrite($fp_file, fgets($fp_inet, 8192)); не выполнится - как раз те самые 50 сек сервер как бы не робит
Я так понимаю может серв все свои ресурсы на скачку файла отдает чтоли...
Можно ли как нить приоритет процесса данного понизить чтоли...
То есть мне не так важн чтоб файл быстро скачался, главн чтобы скачался - хоть за 20 минут
Лишь бы сайт продолжал свою работу

Заранее спс за ответ