【问题标题】:How to stop PHP script after it executes for 3 mins如何在执行 3 分钟后停止 PHP 脚本
【发布时间】:2021-06-15 01:31:54
【问题描述】:

我的网站托管在 digitalocean 服务器上,我可以完全控制服务器。我有使用代理 IP 下载数千张图像的 php 脚本。有时我的脚本需要无限的时间,它会减慢整个站点的速度。我检查了 max_execution_time 并将其设置为默认 30 秒。但是我的脚本在 30 秒后仍然没有停止。如何在 2 分钟后停止我的脚本运行,以使我的网站不会影响其他脚本。

【问题讨论】:

  • 尝试在开始时记录时间戳并在每次迭代时引用它

标签: php


【解决方案1】:

max_execution_time 只影响脚本本身的执行时间。在确定脚本运行的最长时间时,不包括在脚本执行之外发生的活动所花费的任何时间,例如使用 system() 的系统调用、流操作、数据库查询等。

请参阅此link 了解更多详情。

【讨论】:

    【解决方案2】:

    您可以尝试在开始时记录时间戳并在每次迭代时引用它。使用break;return; 退出循环

    function getImagesFromRemote($urlArray=[]) {
      $start = time();
      $maxduration = 3 * 60 ;
      foreach ($urlArray as $url) {
         // do your code
        $something[] = $value;
        $elapsed = time() - $start;
        if ($elapsed >= $maxduration) break;
      }
      return $something;
    }
    
    }
    

    【讨论】:

    • @farazch - 这有助于解决您的问题吗?如果是这样,请接受作为答案。谢谢
    【解决方案3】:

    通过使用 exit() 函数,我们可以停止执行 php 脚本。 exit() 函数仅终止脚本的执行。即使调用了 exit() 函数,也会始终执行关闭函数和对象析构函数。

    【讨论】:

    • 这没有解决问题 - OP 正在询问如何不超过某个时间
    猜你喜欢
    • 2014-04-28
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多