Запрет тайм-аута при большом запросе в PHP - PullRequest
19 голосов
/ 11 октября 2010

Я обращаюсь к серверам 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;
        }
    }
?>

Спасибо!

Ответы [ 3 ]

39 голосов
/ 11 октября 2010

Попробуйте функцию set_time_limit () . Вызов set_time_limit(0) удалит все временные ограничения для выполнения скрипта.

1 голос
/ 23 мая 2014

Также используйте ignore_user_abort () для обхода отмены браузера.Сценарий будет работать, даже если вы закроете браузер (используйте с осторожностью).

0 голосов
/ 19 июня 2015

Попробуйте время от времени отправлять «Status: 102 Processing», чтобы браузер не отключился (ваш лучший выбор между 15 и 30 секундами). После обработки запроса вы можете отправить окончательный ответ.

Браузер не должен больше останавливаться таким образом.

...