PHP脚本的运行时间比max_execution_time长得多?

fab*_*mlk 2 php timeout execution-time

PHP作为Apache模块运行.

该脚本以: ini_set('max_execution_time', 300);

它的作用基本上是连接数据库,进行大SELECT查询并循环结果,将它们写入文件并在每次写入后用显式回显"结果正常"flush();

没有sleep()电话.

这是一个由我的同事制作的"测试"脚本,用于备份目的,目的是运行几个小时!我以为我知道脚本执行时间限制,并认为他的脚本会在300秒后超时......但事实并非如此!

它是从Web浏览器调用的.页面保持打开状态,我们可以看到实时回显的结果.

为什么不超时?更奇怪的是,其中一项测试发出了" 超过300秒的最大执行时间 "但这至少在执行2小时后出现了!

这里发生了什么?在max_execution_time和flush()之间是否有一些需要理解的东西或者保持打开的浏览器窗口?

mis*_*shu 8

正如您在set_time_limit函数的手册页上所看到的,此处设置的总执行时间仅影响实际脚本.不计算在数据库查询或任何其他外部调用上花费的时间(如果操作系统不是Windows).