PHP-脚本刷新自身并重新开始执行时间

问题描述 投票:0回答:1

我有一个数组,里面有大约500多个元素,这些元素将在一个函数中进行检查,然后我必须从API中为每个元素抓取数据(每个元素都是一个查询),这不允许我在短时间内有那么多的请求。这些元素将在一个函数中被检查,然后我将不得不从API中为每个元素抓取数据(每个元素都是一个查询),这不允许我在短时间内有那么多的请求。我将不得不运行一个延迟循环,很可能会超过30秒。

我想要的是,我的PHP脚本应该做一定量的检查请求,并从 "todo "列表中删除,然后在2秒后自我刷新并继续工作。

一个cronjob会启动这个php-script。

如何管理PHP在 "工作完成 "后或发生某种 "失败 "后重新启动脚本?这取决于这个事情,取决于我如何将 "todo-list"-数组中的数据存储到一个文件中,或者是一个$_SESSION。不想把这个存储到一个DB中。

我如何解决这个问题,而不需要在服务器上或脚本本身之外设置一些东西?

php refresh execution
1个回答
1
投票

PHP的生命周期是基于请求的,即不能自己刷新。

你可以使用。

  1. cronjob在后台做一些工作。
  2. 通过Javascript开启定时器,从浏览器向web服务器发起新的请求,服务器将执行PHP API并返回新的结果。比如说
<script>
function onTimerRefreshFromApi() {
    var request = new XMLHttpRequest();
    request.open('GET', '/api/url', true);

    request.onload = function () {
        if (this.status >= 200 && this.status < 400) {
            // On Success replace html
            element.innerHTML = this.response;
        } else {
            // We reached our target server, but it returned an error
        }
    };

    request.onerror = function () {
        // There was a connection error of some sort
    };

    request.send();
}

setInterval(onTimerRefreshFromApi, 1000);
</script>
  1. 使用Ajax on timer的方式与2)类似。)
  2. 使用头信息指示浏览器按所述进行刷新。使用PHP刷新页面
© www.soinside.com 2019 - 2024. All rights reserved.