問題
php.ini 中的 max_execution_time 和 php-fpm.conf 中的 request_terminate_timeout 的差別
描述
max_execution_time:每個腳本最大可執行時間,cli模式下為0
request_terminate_timeout:執行一個請求的逾時時間,在這之後worker程序将被終止。(官方解析:此選項應該用在max_execution_time不能被停止腳本執行的時候)
結論
max_execution_time : 計算的是cpu占用時間,sleep(),system(),和資料庫操作都不計算
request_terminate_timeout : 計算的是worker程序的工作時間
例子
1:
<?php
$a = time();
echo ‘begin’;
for ($i = 0;;$i++) {
if (time() - $ime > 10) {
break;
}
}
echo ‘end’;
?>
2:
<?php
echo ‘begin’;
sleep(10);
echo ‘end’;
?>
max_execution_time為20,request_terminate_timeout為3
例子1結果:出現報錯,程式執行時間為3秒
例子2結果:出現報錯,程式執行時間為3秒
max_execution_time為3,request_terminate_timeout為20
例子1結果:程式終止,程式運作時間為3秒
例子2結果:結果正常, 程式執行10秒,但是cpu占用時間小于3秒
長按掃描二維碼,更多精彩類容,互相學習探讨
