PHP-FPM fastcgi_finish_request()无法按预期工作

时间:2011-10-10 06:59:00

标签: kohana-3 php

我阅读了@Dmitri的原始example of how to use fastcgi_finish_request()问题并尝试按照index.php中的Kohana 3.1设置中的答案进行操作:

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

在那之后,我补充道:

fastcgi_finish_request();
sleep(5);

最初,我认为它有效。但后来我意识到只适用于每个其他请求。例如:

  1. 导航到localhost(有效,无暂停)
  2. 点击链接到localhost / controller(暂停5秒)
  3. 点击另一个指向localhost / controller的链接(再次工作,没有暂停)
  4. 它继续这样。我错过了什么吗?就像在php5-fpm配置文件中设置一样?

    使用Suhosin-Patch,Nginx运行PHP 5.3.5-1ubuntu7.2

3 个答案:

答案 0 :(得分:1)

在致电session_write_close()以解决此问题之前致电fastcgi_finish_request()

session_write_close();
fastcgi_finish_request();
sleep(5);

答案 1 :(得分:1)

在服务器响应本身旁边(您可以使用fastcgi_finish_request函数控制并确保它以这种方式工作),可能有其他资源阻止(下一个)脚本提前启动。

这可以是文件锁定(会话流行)和其他东西。由于您没有共享很多代码而且我们没有看到您的Kohana配置,因此您应该查看您使用的组件以及他们获得的资源。

答案 2 :(得分:0)

是不是因为您的Web服务器一次只处理一个php实例并且它仍然令人兴奋的是以前的脚本?