Rechercher une fonction PHP

MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeoutDéfini un délai maximum d'attente côté client pour cette requête

Description

public MongoCursor::timeout ( int $ms ) : MongoCursor

Un délai maximum d'attente peut être défini à n'importe quel moment, et affectera les requêtes suivantes du curseur, incluant la récupération de plus de résultats depuis la base de données.

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

ms

Le nombre de millisecondes que le curseur doit attente une réponse. Pour attendre indéfiniement, utilisez la valeur -1. Par défaut, le curseur attendra 30000 millisecondes (30 secondes).

Retour à la première page de Manuel PHP  Table des matières Haut

Erreurs / Exceptions

Si la requête prend plus de temps que le nombre de millisecondes spécifié, une exception de type MongoCursorTimeoutException sera émise.

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple avec MongoCursor::timeout()

Dans l'exemple suivant, le driver va attendre indéfiniement la réponse initiale de la base de données, puis, va attendre 100ms pour les réponses suivantes.

<?php

$cursor 
$collection->find();
$cursor->timeout(-1);

/* $cursor->hasNext() exécute la requête. Un délai d'attente infini a été défini, aussi
 * le driver va attendre autant de temps que nécessaire la réponse.
 */
while ($cursor->hasNext()) {
    
$cursor->timeout(100);

    
/* Un délai d'attente maximal a maintenant été défini, aussi, si le curseur
     * doit récupérer plus de résultats depuis la base de données, il n'attendra
     * la réponse que pendant 100ms.
     */
    
try {
        
print_r($cursor->getNext());
    } catch (
MongoCursorTimeoutException $e) {
        echo 
"La requête prend trop longtemps !";
    }
}

?>

Retour à la première page de Manuel PHP  Table des matières Haut

Notes

Avertissement

Ce comportement ne permet pas d'annuler une opération trop longue au niveau du serveur MongoDB ; il ne va qu'informer le driver d'arrêter d'attendre une réponse, et lancer une exception MongoCursorTimeoutException après la durée définie. Si vous devez spécifier un délai maximal d'attente côté serveur pour une requête, veuillez utiliser la méthode MongoCursor::maxTimeMS().

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongocursor.timeout.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut