|
|
|
| Можно ли отдать предпочтение на работу одного скрипта и "второочередность" для другого?
Например чтоб одному скрипту уделялось больше ресурсов а другому меньше. Или что-то подобное. А то я замечаю когда мои скрипты висят полностью - phpMyAdmin например работает нормально.
Вообщем нужно чтоб index.php всегда работал быстро а download.php - как получится.
Спасибо! | |
|
|
|
|
|
|
|
для: toproot
(17.01.2011 в 20:12)
| | Не путайте скорость работы сервера ("когда мои скрипты висят полностью - phpMyAdmin например работает нормально") и скорость работы конкретного скрипта ('index.php')
Условно говоря, если вы сделаете в index.php код, наподобие while(true) - index.php всегда будет висеть, хотя все остальные скрипты будут работать нормально... до тех пор, пока сервер не будет сильно нагружен. Если он будет нагружен - любой скрипт будет очень задумчив.
А вообще - да, есть параметр в командной строке для приоритета того или иного процесса, но в вашем случае это не годится.
Оптимизируйте работу index.php. Ищите в нем узкие места, которые заставляют скрипт подвисать. Исправляйте их. | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.01.2011 в 10:07)
| | Так у меня проблема скорее не в index.php а в download.php
Он у меня отдает файлы, т.к. прямую ссылку давать не хочу.
function downloadFile($filename, $name, $mimetype = 'application/octet-stream',$filesize = 0,$gfd)
{
if (!file_exists($filename))
die('Файл не найден');
$from = $to = 0;
$cr = null;
if (isset($_SERVER['HTTP_RANGE'])) {
$range = substr($_SERVER['HTTP_RANGE'], strpos($_SERVER['HTTP_RANGE'], '=') + 1);
$from = strtok($range, '-');
$to = strtok('/');
if ($to > 0)
++$to;
if ($to)
$to -= $from;
header('HTTP/1.1 206 Partial Content');
$cr = 'Content-Range: bytes ' . $from . '-' . (($to) ? ($to . '/' . $to + 1) :
$filesize);
} else
header('HTTP/1.1 200 Ok');
$etag = md5($filename);
$etag = substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15,
8);
header('ETag: "' . $etag . '"');
header('Accept-Ranges: bytes');
header('Content-Length: ' . ($filesize - $to + $from));
if ($cr)
header($cr);
header('Connection: close');
header('Content-Type: ' . $mimetype);
header('Last-Modified: ' . gmdate('r', filemtime($filename)));
$f = fopen($filename, 'r');
header('Content-Disposition: attachment; filename="' . $name . '";');
if ($from)
fseek($f, $from, SEEK_SET);
if (!isset($to) or empty($to)) {
$size = $filesize - $from;
} else {
$size = $to;
}
$downloaded = 0;
$ruser = $_SESSION['registeruser'];
while (!feof($f) and !connection_status() and ($downloaded < $size)) {
echo fread($f, 5120000);
$downloaded += 5120000;
ob_flush();
flush();
}
fclose($f);
|
... и.т.д.
С помощью такой функции он выдает файл.
Может как-то ее переделать, или PHP.ini подкорректировать?
Вобще думал разместить все на хостинге кроме файлов. а downl.php с файлами на сервере.. но не очень горю желанием.
Причем процессор не загружен и РАМ еще гиг свободен! ано глючит.. | |
|
|
|
|
|
|
|
для: toproot
(18.01.2011 в 16:47)
| | имеются ошибки, как при проектировании, так и в логике. | |
|
|
|