(PECL mongo >=1.6.0)
MongoCommandCursor::timeout — Défini le délai d'attente maximal côté client pour cette commande
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.
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).
Ce curseur.
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é.
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 ) {
…
}
?>
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().
socketTimeoutMS
de la méthode MongoClient::__construct()