Как написать PHP-скрипт, который продолжает работать, даже после вымывания какого-либо текста и завершения HTTP-запроса? Это возможно?
Запуск PHP-приложения навсегда или до завершения php
ignore_user_abort(true); set_time_limit(0);
Вас может заинтересовать директива конфигурации ignore_user_abort
и / или функция ignore_user_abort
:
Устанавливает, должен ли клиент отключиться, чтобы сценарий был прерван.
Используя это, вы можете:
flush
и / или ob_flush
ignore_user_abort
(либо сейчас, либо раньше) Браузер пользователя, вероятно, все равно укажет «ожидание» или «загрузка», но содержимое страницы будет загружено и отображено – и даже если пользователь нажимает «стоп», ваш скрипт должен продолжить выполнение.
Для получения дополнительной информации на странице руководства этой функции есть пример, и вы можете взглянуть на эту статью: Как использовать ignore_user_abort()
для обработки вне диапазона
Конечно, хотя это может быть использовано для некоторого легкого процесса (например, «очистка» материала в конце страницы, показывая его как можно быстрее пользователю) , вы все равно будете ограничены max_execution_time
и т. П.
Таким образом, это не решение, которое должно использоваться для длинных / тяжелых вычислений.