您的位置 首页 php

php超时时间问题(面试)

问题

 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超时时间问题(面试)

文章地址:https://www.zhihuclub.com/154259.shtml

关于作者: 智云科技

热门文章

网站地图