пример использования fastcgi_finish_request () - PullRequest
18 голосов
/ 21 ноября 2010

Может кто-нибудь показать простой пример использования функции fastcgi_finish_request()?Я гуглил, но нашел только общее упоминание об этом, некоторые люди говорят, что они успешно его используют, но я не смог найти ни одного примера с кодом.

Например, у меня есть объект PHP.Чтобы отправить ответ браузеру, я генерирую HTML, а затем возвращаю его через getResult().Затем отобразите результат.

Например:

$obj = new controller();
echo $o->getResult();

Допустим, я хочу воспользоваться этой техникой оптимизации, чтобы отправить результат в браузер, а затем завершить какой-нибудь потенциально долгий процесс, например, подключениекакой-то API, например, Facebook API.

Как бы я поступил так?Я понимаю, что в основном я могу позвонить fastcgi_finish_request(); и затем продолжить выполнение сценария php.

Мне просто нужно увидеть пример кода, я недостаточно умен, чтобы самому разобраться.

1 Ответ

42 голосов
/ 21 ноября 2010

Я понимаю, что в основном я могу вызвать fastcgi_finish_request (); и затем продолжите выполнение сценария php.

Да, это все, что вам нужно сделать.

$obj = new controller();
echo $o->getResult();
fastcgi_finish_request();
do_facebook_thing();

Чтобы убедиться, что это работает, сделайте следующее:

echo "Test";
fastcgi_finish_request();
sleep(10);

Если вы удалите вторую строку, то увидите, что браузер должен ждать 10 секунд.

...