我正在使用 php-fpm 并设置了 terminate_timeout=3 来停止任何运行时间超过 3 秒的脚本,效果很好。
但是,有时,我会有一个需要运行更长时间的 php 脚本,例如,它正在访问需要一些时间才能返回的 3rd 方计费 API。
脚本有什么办法可以覆盖 php-fpm 的默认超时并要求更长的时间?
我正在使用 php-fpm 并设置了 terminate_timeout=3 来停止任何运行时间超过 3 秒的脚本,效果很好。
但是,有时,我会有一个需要运行更长时间的 php 脚本,例如,它正在访问需要一些时间才能返回的 3rd 方计费 API。
脚本有什么办法可以覆盖 php-fpm 的默认超时并要求更长的时间?
中声明的选项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 安全模式下不起作用)
(我猜(没有尝试)如果它的值在这种情况下应该删除 php-fpm request_terminate_timeout 选项<设置时间限制)