PHP — fastcgi_finish_request
А вы знаете про эту замечательную функцию?
Если кратко, то используя ее можно заставить приложение отдавать контент пользователю гораздо быстрее, разделяя логику приложения на "это необходимо пользователю" и "это пользователю не очень важно". Когда php работает в fastcgi режиме, например в популярной связке nginx+php-fcgi, у вас появляется возможность сначала посчитать все данные которые необходимы что бы отдать пользователю страницу, а уже потом, когда страница отдана и nginx отдает ее клиенту, можно выполнить все остальные действия, например отправить письма или обновить кэш или запустить некие механизмы очистки.
Нужно отдельно упомянуть, что для правильной работы, fastcgi_finish_request должен запускать после session_write_close и ob_* функций.
Простой пример:
<? echo 'Hello word'; // В данной реализации, данные отдадутся в клиенту сразу, // а если закомментировать вызов fastcgi_finish_request(), // клиент будет ждать 10 секунд, до того, как получит ответ. fastcgi_finish_request(); sleep(10);