在PHP中防止大请求期间超时

在PHP中防止大请求期间超时,php,http,timeout,request,Php,Http,Timeout,Request,我向brightcove服务器提出了一个大请求,要求对我的视频中的元数据进行批量更改。似乎它只经过了1000次迭代,然后就停止了——有人能帮助调整此代码以防止发生超时吗?它需要进行大约7000/8000次迭代 <?php include 'echove.php'; $e = new Echove( 'xxxxx', 'xxxxx' ); // Read Video IDs # Define our parameters $params = array( 'fie

我向brightcove服务器提出了一个大请求,要求对我的视频中的元数据进行批量更改。似乎它只经过了1000次迭代,然后就停止了——有人能帮助调整此代码以防止发生超时吗?它需要进行大约7000/8000次迭代

<?php
include 'echove.php';

$e = new Echove(
    'xxxxx',
    'xxxxx'
);

// Read Video IDs
# Define our parameters
$params = array(
    'fields'         => 'id,referenceId'

);

# Make our API call
$videos = $e->findAll('video', $params);


    //print_r($videos);
    foreach ($videos as $video) {

        //print_r($video);
        $ref_id = $video->referenceId;
        $vid_id = $video->id;

        switch ($ref_id) {
            case "":
                $metaData = array(
                    'id' => $vid_id,
                    'referenceId' => $vid_id
                );

                # Update a video with the new meta data
                $e->update('video', $metaData);                
                echo "$vid_id updated sucessfully!<br />";
                break;
            default:
                echo "$ref_id was not updated. <br />";
                break;
        }
    }
?>


谢谢

试试这个功能。调用
set\u time\u limit(0)
将删除脚本执行的所有时间限制。

也可用于绕过浏览器中止。即使您关闭浏览器,脚本仍将继续运行(请谨慎使用)。

尝试不时发送“状态:102处理”,以防止浏览器超时(您最好的选择是在这段时间内等待15到30秒)。处理请求后,您可以发送最终响应


浏览器不应该再以这种方式超时。

小心,firefox会用
network.http.keep-alive.timeout
选项“覆盖”这一点。这有效吗?我很想使用它,但作为CGI头,您不允许多次发送
状态:
。这个CGI头的HTTP版本(例如“HTTP/1.2 102处理”)将如何到达浏览器?第一个会立即发送吗?后续的可能/合法吗?-1。假设用户未关闭浏览器且连接保持活动状态,则没有理由认为浏览器会因脚本超时而出现故障。相反,这与PHP本身的脚本执行时间限制有关。因此,这个答案是100%不正确的,应该删除,以免混淆任何人。有些浏览器会超时连接:如果脚本没有响应,浏览器将超时。我不知道102是否合适。我经常输出一些HTML,即使它只是说处理。然后,如果您运行循环,只需每隔几秒钟传递一次数据,只需在每个循环中添加一个带有空行的回音。对于任何感兴趣的人来说,这并不阻止Cloudflare的自定义100秒超时。这只是一个警告,如果您决定在基于浏览器的应用程序上使用
set\u time\u limit
,那么您的浏览器可能会在之前超时你会收到任何回复。不是真正的答案,更多的只是有用的信息;)