MongoCursor::timeout

(PECL mongo >=1.0.3)

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

Description

public MongoCursor MongoCursor::timeout ( int $ms )

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

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.

LoadingChargement en cours