私はphp-fpmを使用しており、terminate_timeout = 3を設定して、実行中のスクリプトが3秒以上かかるのを停止しています。これはうまく機能します。
ただし、場合によっては、もう少し長く実行する必要があるphpスクリプトがあります。たとえば、サードパーティの課金APIにアクセスしているため、戻るのに時間がかかります。
スクリプトがphp-fpmのデフォルトのタイムアウトをオーバーライドして、もう少し長い時間を要求する方法はありますか?
私はphp-fpmを使用しており、terminate_timeout = 3を設定して、実行中のスクリプトが3秒以上かかるのを停止しています。これはうまく機能します。
ただし、場合によっては、もう少し長く実行する必要があるphpスクリプトがあります。たとえば、サードパーティの課金APIにアクセスしているため、戻るのに時間がかかります。
スクリプトがphp-fpmのデフォルトのタイムアウトをオーバーライドして、もう少し長い時間を要求する方法はありますか?
で宣言されたオプションは、 (fpmプールに定義されたオプションとともに)php-fpm.conf
から到達できません。でも、ini_set()
異なるオプションで2つのプールを作成します(2つの異なるポートに注意してください)
(通常は/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オプションを削除する必要があると思います(試していません)。 <set_time_limit)