Prévenir le délai d'attente lors d'une requête importante en PHP
Je suis en train de faire une grande demande pour les brightcove serveurs pour faire un lot de changement de métadonnées dans mes vidéos. Il semble que cela ne fait-il par le biais de 1000 itérations, puis arrêté - quelqu'un peut-il l'aider à régler ce code pour éviter un délai d'attente de se produire? Il doit faire au sujet de 7000/8000 itérations.
<?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;
}
}
?>
Merci!
source d'informationauteur Dave Kiss
Vous devez vous connecter pour publier un commentaire.
Essayer le set_time_limit() fonction. L'appel de
set_time_limit(0)
va supprimer les limites de temps pour l'exécution du script.Essayer d'envoyer un "Statut: 102 Traitement" chaque maintenant et puis pour empêcher le navigateur de timing (votre meilleur pari est d'environ 15 à 30 secondes entre les deux). Après que la demande a été traitée, vous pouvez envoyer la réponse finale.
Le navigateur ne devrait pas plus de cette façon.
Également utiliser ignore_user_abort() de contourner navigateur abandonner. Le script continuera à fonctionner même si vous fermez le navigateur (utiliser avec prudence).