PHP-FPM fastcgi_finish_request () не работает должным образом - PullRequest
1 голос
/ 10 октября 2011

Я прочитал оригинальный @Dmitri пример использования fastcgi_finish_request () вопрос и попытался последовать примеру в ответе в моей настройке Kohana 3.1 в index.php:

echo Request::factory()
    ->execute()
    ->send_headers()
    ->body();

Сразу после этого я добавил:

fastcgi_finish_request();
sleep(5);

Сначала я думал, что это сработало. Но потом я понял, что работает только для каждого другого запроса. Пример:

  1. Перейдите на локальный хост (работает, без паузы)
  2. Нажмите ссылку на локальный хост / контроллер (пауза 5 секунд)
  3. Нажмите другую ссылку на локальный хост / контроллер (снова работает, без паузы)

И так продолжается. Я что-то пропустил? Например, настройка в файле конфигурации php5-fpm?

Запуск PHP 5.3.5-1ubuntu7.2 с Suhosin-Patch, Nginx

Ответы [ 3 ]

1 голос
/ 02 октября 2012

Позвоните session_write_close(), прежде чем позвонить fastcgi_finish_request(), чтобы решить эту проблему:

session_write_close();
fastcgi_finish_request();
sleep(5);
1 голос
/ 02 октября 2012

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

Это могут быть блокировки файлов (популярные для сессии) и другие вещи. Поскольку вы не поделились большим количеством кода, и мы не видим вашу конфигурацию Kohana, вам следует посмотреть, какие компоненты вы используете и какие ресурсы они получают.

0 голосов
/ 17 января 2012

Это потому, что ваш веб-сервер обрабатывает только один экземпляр php за раз, и он по-прежнему интересен предыдущий скрипт?

...