(PECL mongo >=1.6.0)
MongoCommandCursor::timeout — Establece el tiempo de espera del lado del cliente para este comando
Se puede establecer un tiempo de espera en cualquier momento, por lo que afectará a la recuperación de datos subsiguientes asociados a este cursor, incluyento la obtención de más resultados de la base de datos.
ms
El número de milisegundos que ha de esperar el cursor a un a respuesta. Use -1 para una espera ilimitada. Por defecto, el cursor esperará 30000 milisegundos (30 segundos).
Este cursor.
Causa que los métodos que obtengan resutados lancen una MongoCursorTimeoutException si la obtención de los datos toma más del número de milisegundos especificados.
Ejemplo #1 Ejemplo de MongoCommandCursor::timeout()
En el siguiente ejemplo, el controlador esperará 60 segundos a la primera respuesta del comando totalizador. También esperará 60 segundos cada vez que el servidor necesite ser consultado para más información.
<?php
$m = new MongoClient;
$col = $m->database->collection;
$pipeline = [ … ];
$cursor = $col->aggregateCursor( $pipeline );
$cursor->timeout( 60000 ); // para 60 segundos
foreach ( $cursor as $result ) {
…
}
?>
Esto no hace que el servidor de MongoDB cancele las operaciones de ejecución larga; solamente instruye al controlador a dejar de esperar una respuesta y lanzar una MongoCursorTimeoutException después del tiempo establecido. Si fuera necesario especificar un tiempo de espera en el lado del servidor para un comando, considérese pasara la opción maxTimeMS a MongoCollection::aggregateCursor().