【问题标题】:why timeout not stop infinite loop为什么超时不停止无限循环
【发布时间】:2016-09-16 07:22:33
【问题描述】:

为什么php或apache不停止无限循环?

while (true)
{
    sleep(5);
}

Apache 的默认 TimeOut = 300。 php - max_execution_time = 30

但这个循环可能会持续一个小时。为什么?

【问题讨论】:

  • 您希望您的 Apache 在最大时间后停止您的 while 循环吗?你为什么想要那个?
  • 不要为此超时?

标签: php apache timeout infinite-loop


【解决方案1】:

由于 sleep() 发生在脚本之外,它不会影响脚本的最大执行时间。

注意:set_time_limit() 函数和配置指令 max_execution_time 只影响脚本的执行时间 本身。在执行之外发生的活动上花费的任何时间 诸如使用 system() 的系统调用、sleep() 的脚本 函数、数据库查询等不包括在确定 脚本运行的最长时间。 http://php.net/manual/en/function.sleep.php

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多