问题
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秒
长按扫描二维码,相互学习探讨