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

Dav*_*iss 19 php timeout http request

我正在向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;
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

谢谢!

bob*_*aes 40

尝试使用set_time_limit()函数.调用set_time_limit(0)将删除执行脚本的任何时间限制.

  • 注意,firefox"覆盖"了这个,使用`network.http.keep-alive.timeout`选项 (7认同)

Bil*_*lly 5

还可以使用ignore_user_abort()来绕过浏览器中止。即使您关闭浏览器,脚本也会继续运行(谨慎使用)。