Это не один из регулярных вопросов, если сон подсчитывается за тайм-аут или что-то в этом роде. Хорошо, вот в чем проблема: я установил max_execution_time для PHP как 15 секунд, и в идеале это должно время, когда оно пересекает установленный предел, но это не так. Apache был перезапущен после изменения файла php.ini, а ini_get (max_execution_time) – все в порядке. Иногда сценарий работает до 200 секунд, что является сумасшедшим. У меня нет связи с базой данных вообще. Весь скрипт ищет файлы в файловой системе unix и в некоторых случаях перенаправляет на другую страницу JSP. В сценарии нет сна ().
Я вычисляю общее время выполнения скрипта PHP следующим образом:
В начале скрипта я установил:
$_mtime = microtime(); $_mtime = explode(" ",$_mtime); $_mtime = $_mtime[1] + $_mtime[0]; $_gStartTime = $_mtime;
и время окончания ($ _ gEndTime) вычисляется аналогично.
Общее время вычисляется в функции остановки, которую я зарегистрировал:
register_shutdown_function('shutdown'); ............. function shutdown() { .............. .............. $_total_time = $_gEndTime - $_gStartTime; .............. switch (connection_status ()) { case CONNECTION_NORMAL: .... break; .... case CONNECTION_TIMEOUT: .... break; ...... } }
Примечание. Я не могу использовать $ _SERVER ['REQUEST_TIME'], потому что моя версия PHP несовместима. Это отстойно, я знаю.
1) Ну, по-моему, первый вопрос заключается в том, почему мой PHP-скрипт выполняется даже после установленного предела таймаута?
2) Apache имеет директиву Timeout, которая составляет 300 секунд, но двоичный файл PHP не читает конфигурацию Apache, и это не должно быть проблемой.
3) Есть ли вероятность, что что-то отправляет PHP в спящий режим?
4) Я неправильно вычисляю время выполнения? Есть лучший способ сделать это?
Я в тупике. PHP Wizards – пожалуйста, помогите.
Изменить: я только выяснил, что потоковые операции не являются причиной с несколькими журналами. Задержка является случайной только в сценарии, даже если нет операций потоковой передачи. Переключение контекста может быть просто причиной. Но у меня все еще нет четкого ответа. Я посмотрел Real max_execution_time для PHP на Linux, но я не уверен, что хочу попробовать это. Любые другие предложения?