PHP脚本自行刷新并重新启动执行时间

时间:2020-06-09 10:53:06

标签: php refresh execution

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

我想要的是,我的PHP脚本应进行一定数量的检查/请求,并从“待办事项”列表中删除,然后自我刷新并在约2秒后继续执行工作。

cronjob将启动此php脚本。

在“工作完成”之后或发生某种“故障”之后,如何管理PHP重新启动脚本?这取决于这件事,取决于我如何将“ todo-list”数组中的数据存储到文件或$ _SESSION中。不想将其存储到数据库中。

如何解决此问题而无需在服务器上或脚本本身之外进行设置?

1 个答案:

答案 0 :(得分:1)

PHP生命周期是基于请求的,即它本身无法刷新。

您可以使用:

  1. cronjob在后台做一些工作
  2. 计时器上的Java脚本,用于从浏览器向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的方式与2)类似。
  2. 使用标头指示浏览器按照以下说明进行刷新:Refresh a page using PHP