想在几秒钟内执行Php代码

想在几秒钟内执行Php代码,php,Php,我想执行一堆代码5秒钟,如果它没有在指定的时间范围内完成执行,我需要执行另一段代码 是否可能 例。。 有两个功能A和B 如果在函数A期间,A执行该控件的时间超过30秒,则应将该控件传递给B,您可以定期检查脚本执行的时间,如果超过x秒,则运行B: function checkTime($start) { $current = time(); $secondsToExecute = 5; if (($start+$secondsToExecute) <= $curren

我想执行一堆代码5秒钟,如果它没有在指定的时间范围内完成执行,我需要执行另一段代码

是否可能

例。。 有两个功能A和B


如果在函数A期间,A执行该控件的时间超过30秒,则应将该控件传递给B,您可以定期检查脚本执行的时间,如果超过x秒,则运行B:

function checkTime($start) {
    $current = time();
    $secondsToExecute = 5;
    if (($start+$secondsToExecute) <= $current) {
        func_b();
    }

}
function func_a($start) {
     // do some code
    checkTime($start);
    // do some code
    checkTime($start);
    // do some code
}
function func_b() {
    // do something else
    exit();
}

func_a(time());
函数检查时间($start){
$current=time();
$secondsToExecute=5;
如果($start+$secondsToExecute)

设置一个时间限制和一个关机功能,它检查状态是否为2(超时),如果是,则执行您的操作。 需要注意的是,以这种方式设置的时间限制只计算实际的php处理时间。php等待另一个进程、数据库或http连接等所花费的时间将不计算在内,您的时间限制将不会被视为已达到

如果您需要计算实际经过的时间,即使不是php处理时间,您也必须按照上述建议的答案进行。在最有意义的地方手动插入时间检查,即您知道的内部循环可能运行得太长,可能不是每次迭代都运行,而是每N次迭代运行,等等。更改从本质上讲,一种更通用的方法是使用register_tick_function(),但这可能会导致低tick count带来明显的性能影响,并且您必须注意取消注册它或使用适当的标志,以便在超时发生后不会无限地开始越来越多的超时处理代码调用


也可以使用其他方法,您可以使用pcntl_signal()注册某个信号的处理程序,并在外部程序(如果您在linux机器上,则为“人工超时”)或fork()达到时间限制时将其发送到您的进程-您自己的php脚本的ed实例,等等。

在php中,不可能。使用能够访问计时器和系统信号的外部控制程序是可行的。下面的答案让我以不同的可能方式思考。好主意:)肯定会使用它