MongoCommandCursor::timeout

(PECL mongo >=1.6.0)

MongoCommandCursor::timeoutDéfini le délai d'attente maximal côté client pour cette commande

Description

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

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).

Valeurs de retour

Ce curseur.

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->timeout60000 ); // 60 secondes

foreach ( $cursor as $result ) {
   

}

?>

Notes

Avertissement

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