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

标签 php timeout execution-time

PHP 作为 Apache 模块运行。

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

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

没有 sleep() 调用。

这是我的同事出于备份目的而制作的“测试”脚本,预计运行长达几个小时!我以为我知道脚本执行时间限制,并认为他的脚本会在 300 秒后超时...... 但事实并非如此!

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

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

这是怎么回事? max_execution_time和flush()之间有什么需要理解的,或者浏览器窗口保持打开状态吗?

最佳答案

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

关于PHP 脚本运行时间比 max_execution_time 长得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30911635/

相关文章:

php - 订单网格的公司名称列

php - 没有自定义帖子类型 slug 的 WordPress slug

Linux:打开命名管道进行写入时超时

java - 捕获的输出“需要很长时间才能在多次运行后出现在屏幕上

C++ 模板复杂图像读取类执行时间慢,声明和实现分离

ruby - 如果超过 5 秒,如何退出使用 Ruby 运行的进程?

php - 将相同的 ID 显示为单个 ID

php - 接收失败 : Connection was reset in Curl PHP

php - 如何知道连接何时被 peer 在 php 中重置?

c++ - 测量 C++ 中函数调用的执行时间