天天看點

php.ini 中的 max_execution_time 和 php-fpm.conf 中的 request_terminate_timeout 的差別問題描述結論例子

問題

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秒
           

                                                                                         長按掃描二維碼,更多精彩類容,互相學習探讨

php.ini 中的 max_execution_time 和 php-fpm.conf 中的 request_terminate_timeout 的差別問題描述結論例子