【问题标题】:How to stop execution of a function in php after a specific time?如何在特定时间后停止执行php中的函数?
【发布时间】:2014-03-15 06:22:14
【问题描述】:

我的脚本中有五个exec() 函数,它们一个接一个地运行。我希望 exec() 函数在 10 秒后停止执行,下一个 exec() 函数开始执行。

<?php
  exec("/usr/local/bin/wrun 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat'",$uptime);
  foreach($uptime as $load){
    echo $load."<br />";
  }

  exec("/usr/local/bin/trun 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat'",$uptime);
  foreach($uptime as $load){
    echo $load."<br />";
  }

  exec("/usr/local/bin/drun 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat'",$uptime);
  foreach($uptime as $load){
    echo $load."<br />";
  }

   .......
  ?>

【问题讨论】:

  • 使用 ajax 会是更好的解决方案。
  • exec() with timeout 的可能重复项
  • @AmalMurali 请举一个exec() 超时的例子。
  • @user3422433:见上述问题的第一个答案。

标签: php linux


【解决方案1】:

set_time_limit() 确实全局运行, 但你可以在本地设置,

<?php
set_time_limit(0); 
function do()
{
    set_time_limit(10);   
    //  work
    set_time_limit(10);   

}

// ....
sleep(900);
// ....
do();  // only has 10 secs to run
// ....
sleep(900);

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 2012-10-28
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多