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

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

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

在JavaScript中,我可以使用setInterval()实现此目的。 我希望能够在PHP中执行相同的操作。 也许使用一个自定义的setInterval()函数,如下所示:

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

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

#1楼 票数:-1

没有任何简单的方法可以执行此操作,但是由于您有运行很长时间的php脚本,因此,假设您有一个主循环,可以执行以下操作:

while($running) { // long running main loop

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

  ask by Lloyd Banks translate from so

未解决问题?本站智能推荐:

1回复

如何异步使用PHP函数

我有一个PHP函数,我希望它异步工作。 任何帮助都是最欢迎的 我已经访问了PHP线程异步调用php函数 但我不想使用php线程
3回复

Javascript等待PHP函数返回

我有一个javascript函数,我要求它在继续之前验证数据库中的一些信息。 这是一个简单的布尔条件。 如果为true,则继续,否则终止。 问题似乎是javascript函数立即将函数调用评估为'false',从而终止执行。 它在函数实际返回之前执行此操作,因此即使内部函数返回true,
3回复

PHP中的header()是异步函数吗?

这是process.php文件中的一段代码: 我在index.php文件中有一个带有两个“提交”按钮的表单: 如果单击“跳过”按钮,则重定向到“ main.php”页面。 上面的代码在process.php中有效,但是如果我做了一点改动: 当单击“跳过”按钮时,它仍停留
1回复

异步 PHP 函数调用

我有一个将其写入文件的函数。 我需要从另一个 php 文件调用这个函数,比如 index.php 我希望从 index.php 异步调用 write 函数,因此如果写入失败,当前执行不会停止或阻塞。
1回复

如何发送PHP可调用函数对Ajax Request的响应?

我正在使用ajax.upload将formdata发送到PHP以将文件上传到Google云存储 Javascript: PHP: 而且我在uploadProgress函数中收到正确的进度值,但是如何异步地将此值发送到ajax请求响应或在这种情况下如何显示进度。
1回复

我如何使用reactphp编写php异步函数

我以为我可以同时做更多事情,所以我开始使用reactphp。 代码运行得很好,但是我想确保代码确实是异步的,我尝试了下面的代码,这给了我信心,它回响了字符串“以自然顺序”,例如“一二三四...”,但是我正寻找“一四三二...”之类的输出,就像在javascript中一样。 fu
2回复

在PHP中异步调用多个函数

我正在使用Symfony 3和ReactPHP库来控制所有功能,并且需要异步执行对同一函数(代码中的subFunction()多次调用。 我有2个项目(project1和project2): 项目1的代码: 项目2的代码: 问题在于,在每次subFunction($url
1回复

PHP中如何保证函数调用的顺序?

我想实现一个 php 服务,其中涉及 2 个 C# 应用程序,每个应用程序读取其前一个应用程序的输出并生成另一个输出。 我想知道这是否可以逐行实现,而不是需要线程或其他一些异步机制。 用户可以在该网页上传一个文本文件,导致uploadFile.php ,目前编写如下: 假设用户上传test.t