Как я могу заставить PHP 5.2 (работающий как apache mod_php) отправить полный HTTP-ответ клиенту, а затем продолжить выполнение операций еще на одну минуту?
Длинная история:
У меня есть PHP script, который должен выполнить несколько длинных запросов к базе данных и отправлять электронную почту, для выполнения которой требуется от 45 до 60 секунд. Этот script вызывается приложением, которое я не контролирую. Мне нужно, чтобы приложение сообщало о любых сообщениях об ошибках, полученных от PHP скрипт (в основном недопустимые ошибки параметров).
Приложение имеет задержку ожидания менее 45 секунд (я не знаю точное значение) и поэтому регистрирует каждое выполнение PHP script как ошибку. Поэтому мне нужно, чтобы PHP отправлял полный HTTP-ответ клиенту как можно быстрее (в идеале, как только входные параметры были проверены), а затем запустить обработку базы данных и электронной почты.
Я запускаю mod_php, поэтому pcntl_fork
недоступен. Я мог бы обойти это, сохранив данные для обработки в базе данных и выполнив фактический процесс с cron
, но я ищу более короткое решение.