(PECL mongo >=1.5.0)
MongoCursor::maxTimeMS — Устанавливает время ожидания на стороне сервера для этого запроса
Задает совокупный лимит времени в миллисекундах, который должен быть разрешен сервером для обработки операций над курсором.
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 прерывал длительные запросы. Это время ожидания накапливается за время жизни курсора (то есть каждый пакет будет вносить свой вклад в этот срок). Во времи ожидания учитывается только время обработки; простой не считается.