我向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;
}
}
?>
谢谢!
答案 0 :(得分:36)
尝试set_time_limit()功能。调用set_time_limit(0)
将删除执行脚本的任何时间限制。
答案 1 :(得分:1)
还可以使用ignore_user_abort()来绕过浏览器中止。即使您关闭浏览器,脚本也会继续运行(请谨慎使用)。
答案 2 :(得分:0)
尝试不时地发送'状态:102处理'以防止浏览器超时(您最好的赌注是介于两者之间约15至30秒)。处理完请求后,您可以发送最终答复。
浏览器不应该以这种方式超时。