MongoCommandCursor::timeout
(PECL mongo >=1.6.0)
MongoCommandCursor::timeout — Défini le délai d'attente maximal côté client pour cette commande
Description
Un délai d'attente peut être défini à n'importe quel moment, et va impacter la récupération des prochaines données associée avec ce curseur, incluant la récupération de plus de résultats depuis la base de données.
Liste de paramètres
-
ms
-
Le nombre de millisecondes que ce curseur doit attente une réponse. Utilisez la valeur -1 pour attendre indéfiniement. Par défaut, le curseur attendra 30000 millisecondes (30 secondes).
Erreurs / Exceptions
Une exception de type MongoCursorTimeoutException sera lancée si la récupération des données prend plus de temps que le délai spécifié.
Exemples
Exemple #1 Exemple avec MongoCommandCursor::timeout()
Dans l'exemple suivant, le driver va attendre 60 secondes la première réponse de la commande d'aggrégation. Il va également attendre 60 secondes chaque fois que le serveur doit être contacté pour l'obtention d'informations.
<?php
$m = new MongoClient;
$col = $m->database->collection;
$pipeline = [ … ];
$cursor = $col->aggregateCursor( $pipeline );
$cursor->timeout( 60000 ); // 60 secondes
foreach ( $cursor as $result ) {
…
}
?>
Notes
Ce mécanisme ne va pas annuler les opérations longues du serveur MongoDB ; il ne va qu'informer le driver qu'il ne doit plus attendre une réponse, et lancer une exception de type MongoCursorTimeoutException après le délai spécifié. Si vous devez spécifier un délai d'attente maximal côté serveur pour une commande, vous devez utiliser l'option maxTimeMS de la méthode MongoCollection::aggregateCursor().
Voir aussi
- MongoCollection::aggregateCursor() - Exécute une commande d'agrégation, et récupère les résultats via un curseur
- MongoCursorInterface::timeout() - Définit un délai maximal d'attente côté client pour cette requête
- L'option socketTimeoutMS de la méthode MongoClient::__construct()
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongocommandcursor.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
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.