与setInterval函数等效的PHP


PHP Equivalent of setInterval Function

我有一个长时间运行的PHP脚本,看起来像这样:

$myClass->myFunction('this takes 30 minutes to run');

我想在运行myFunction()的过程中每30秒发送一次心跳,以提醒我的应用程序脚本仍在运行并且没有失败。

在JavaScript中,我可以用setInterval()来实现这一点。我希望能够在PHP中做同样的事情。也许有一个自定义的setInterval()函数,看起来像:

setInterval(function(){
    $myClass->addHeartbeat("still running");    
}, 30000);

考虑到PHP的同步性,这可能吗?

没有任何简单的方法可以做到这一点,但由于您有一个长时间运行的php脚本,因此您可以做这样的事情,假设您有一条主循环。:

while($running) { // long running main loop
    if(time() % 30 == 0) {
        $myClass->addHeartbeat("still running");
    }
    // your long running phpscript code
}