Может ли PHP-скрипт работать после завершения HTTP-запроса?

Как написать 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 и т. П.

Таким образом, это не решение, которое должно использоваться для длинных / тяжелых вычислений.