MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMSУстанавливает время ожидания на стороне сервера для этого запроса

Описание

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

Задает совокупный лимит времени в миллисекундах, который должен быть разрешен сервером для обработки операций над курсором.

Список параметров

ms

Задает совокупный лимит времени в миллисекундах, который должен быть разрешен сервером для обработки операций над курсором.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Вызывает методы, которые выбирают результаты, чтобы вызвать исключение MongoExecutionTimeoutException, если запрос занимает больше времени, чем указанное количество миллисекунд во время обработки.

Примеры

Пример #1 Пример использования MongoCursor::maxTimeMS()

В следующем примере сервер прервет запрос, если для возврата курсору курсору потребуется более двух секунд.

<?php

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

try {
    
$results iterator_to_array($cursor);
} catch (
MongoExecutionTimeoutException $e) {
    echo 
"запрос занял слишком много времени!";
}

?>

Примечания

Внимание

В отличие от MongoCursor::timeout(), который задает время ожидания на стороне клиента, MongoCursor::maxTimeMS() может использоваться для того, чтобы сервер MongoDB прерывал длительные запросы. Это время ожидания накапливается за время жизни курсора (то есть каждый пакет будет вносить свой вклад в этот срок). Во времи ожидания учитывается только время обработки; простой не считается.