MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMSEstablece un tiempo límite en el lado del cliente para esta consulta

Descripción

public MongoCursor::maxTimeMS ( int $ms ) : MongoCursor

Especifica el tiempo límite acumulativo en milisegundos permitido para que el sevidor procese operaciones en el cursor.

Parámetros

ms

Especifica el tiempo límite acumulativo en milisegundos permitido para que el sevidor procese operaciones en el cursor.

Valores devueltos

Este cursor.

Errores/Excepciones

Lanza una MongoCursorException si este cursor ha comenzado a iterar.

Causa que los métodos que obtengan resultados lancen una MongoExecutionTimeoutException si una consulta toma más del número de milisegundos especificado en procesarse.

Ejemplos

Ejemplo #1 Ejemplo de MongoCursor::maxTimeMS()

En el siguiente ejemplo, el servidor abortará la consulta si el cursor requiere más de dos segundos en precesarla para que devuelva los resultados.

<?php

$cursor 
$collection->find();
$cursor->maxTimeMS(2000);

try {
    
$results iterator_to_array($cursor);
} catch (
MongoExecutionTimeoutException $e) {
    echo 
"!la consulta tomó demasiado tiempo!";
}

?>

Notas

Advertencia

A diferencia de MongoCursor::timeout(), el cual especifica un timepo límite en el cliente, MongoCursor::maxTimeMS() puede ser empleado para que el servidor de MongoDB aborte consultas que tomen mucho tiempo en ejecutarse. Dicho tiempo es acumulativo para el tiempo de vida del cursor (es decir, cada lote contribuirá a este tiempo límite). El tiempo límite solamente considera el tiempo de procesamiento; el tiempo no efectivo no se considera.