URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 42014
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Особенности работы длительно выполняющихся PHP скриптов в Apache"

Отправлено auto_tips , 28-Май-08 12:23 
Рассмотрим поведение Apache при принудительном закрытии клиентом окна браузера, в котором отображался вывод еще не завершенного PHP скрипта. Например, скрипт зациклился или пользователь устал ждать конца операции.

<p>Особенность в том, что скрипт будет принудительно завершен, только в момент физического вывода данных, т.е. после сброса буфера, например после отправки большого числа данных или вызова функций ob_flush() и flush(). Если вывода данных клиенту не производится или буфер вывода остается несброшенным, то скрипт так и будет выполняться до истечении времени заданного через параметр настройки PHP - max_execution_time. При этом не важно, в какое значение в конфигурации PHP установлен параметр ignore_user_abort.

<p>В качестве обходного пути для прерывания скриптов в течение длительного времени не производящих вывод данных, например, вследствие выполнения длительного SQL запроса, можно использовать расширение <a href="http://php.net/pcntl">pcntl</a>, вызывая функцию pcntl_alarm(таймаут). В отличие от max_execution_time/set_time_limit, определяющих максимальное время утилизации CPU (при выполнении запросов к SQL серверу процессорное время расходуется минимально и скрипт может оставаться висеть днями), функция pcntl_alarm оперирует секундами реального времени.

URL: http://www.mysqlperformanceblog.com/2008/05/20/apache-php-my.../
Обсуждается: http://www.opennet.me/tips/info/1675.shtml


Содержание

Сообщения в этом обсуждении
"Особенности работы длительно выполняющихся PHP скриптов в Apache"
Отправлено Kabancheg , 28-Май-08 12:23 
Смысл не уловил...
Чем
set_time_limit(0);    
ignore_user_abort(true);
не угодили? или я чего-то не понял...

"Особенности работы длительно выполняющихся PHP скриптов в Apache"
Отправлено User294 , 28-Май-08 15:06 
Смысл туп как валенок - если скрипт повис и жрет оперативу но не грузит проц - будет сутками висеть.А если таких скриптов повиснет дофига - на сервере закончится память и начнется ахтунг :)

"Особенности работы длительно выполняющихся PHP скриптов в Apache"
Отправлено User294 , 28-Май-08 15:07 
А если о фишке пронюхал хакер - он может и злонамеренно вызывать такой эффект, создавая DoS на сервер по сути с минимальными затратами.

"Особенности работы длительно выполняющихся PHP скриптов в Apache"
Отправлено Andrey Zentavr , 03-Июн-08 11:30 
Мои юзвери так ложили Fedora Core 8 на которой Индеец стоял и Invision power Board