Я пытаюсь отследить, что кажется очень странной ошибкой. У меня есть приложение, которое структурировано примерно следующим образом:Может ли PHP-скрипт завершаться, даже если установлен set_time_limit (0)?
set_time_limit(0);
register_shutdown_function('logScriptCompletion');
function logScriptCompletion() {
log('script completed');
}
log('script started');
// do some calculations periodically printing out progress
Скрипт может занять некоторое время. Желаемое поведение заключается в том, чтобы сценарий продолжал вычислять до конца, даже если нажата кнопка остановки или соединение удалено. 99% времени работает так, как ожидалось.
Время от времени (возможно, раз в несколько месяцев/несколько тысяч запросов) вычисление не выполняется полностью, но оба «сценария запуска» и «завершенный сценарий» регистрируются и никакая другая ошибка не является фатальной или иным образом (у меня включен полный вход).
У меня есть подозрение, что это может иметь какое-то отношение к соединению с отбрасываемым сервером, но не имеет твердых доказательств для подтверждения. Я запускаю Apache 2/PHP 5.2.6 на Linux.
Кто-нибудь еще видел подобную проблему и может помочь пролить свет на это?
Интересно. У меня не было этого набора, но скрипт продолжал выполнение после нажатия кнопки остановки независимо. Это может быть связано с тем, как выполняется буферизация ... Спасибо за предложение, я проверю это. –