MongoCursor::timeout
(PECL mongo >=1.0.3)
MongoCursor::timeout — Définit un délai maximum d'attente côté client pour cette requête
Description
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.
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 MongoCursor::$timeout millisecondes. 
Valeurs de retour
Ce curseur.
Erreurs / Exceptions
Si la requête prend plus de temps que le nombre de millisecondes spécifié, une exception de type MongoCursorTimeoutException sera émise.
Exemples
Exemple #1 Exemple avec MongoCursor::timeout()
<?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 !";
	}
}
?>Notes
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.
