在php-fpm中是否可以覆盖每个脚本的terminate_timeout?

时间:2013-01-22 17:19:51

标签: php

我正在使用php-fpm并设置了terminate_timeout = 3来停止任何运行的脚本超过3秒,这非常有效。

然而,偶尔,我会有一个需要运行时间更长的PHP脚本,例如,它正在访问需要一些时间才能返回的第三方计费API。

有没有办法让脚本覆盖php-fpm的默认超时并要求更长的时间?

1 个答案:

答案 0 :(得分:0)

php-fpm.conf中无法访问ini_set()中声明的选项(以及为fpm 定义的选项)。然而,

  • 创建另一个游泳池

创建两个具有不同选项的池(注意两个不同的端口)
(通常在/etc/php5/fpm/pool.d/

[pool1]
listen = 127.0.0.1:9000
request_terminate_timeout = 0
...

[pool2]
listen = 127.0.0.1:9001
request_terminate_timeout = 10s
...
  • 你也可以使用set_time_limit函数(从核心开始,它在PHP安全模式下不起作用)
    (我猜测(没试过)如果它的值< set_time_limit)

    ,那么在这种情况下应该删除php-fpm request_terminate_timeout选项