MongoCommandCursor::timeout

(PECL mongo >=1.6.0)

MongoCommandCursor::timeoutУстанавливает время ожидания на стороне клиента для команды

Описание

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

Время ожидания может быть установлено в любое время и повлияет на последующий поиск данных, связанный с этим курсором, включая выборку большего количества результатов из базы данных.

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

ms

Количество миллисекунд, в течение которых курсор ожидает ответа. Используйте -1, чтобы ждать вечно. По умолчанию курсор будет ждать 30000 миллисекунд (30 секунд).

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

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

Ошибки

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

Примеры

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

В следующем примере драйвер будет ждать в течение 60 секунд первого ответа от команды. Кроме того, он будет ждать 60 секунд каждый раз, когда сервер будет опрашиваться для получения дополнительной информации.

<?php

$m 
= new MongoClient;
$col $m->database->collection;

$pipeline = [ … ];

$cursor $col->aggregateCursor$pipeline );
$cursor->timeout60000 ); // на 60 секунд

foreach ( $cursor as $result ) {
   

}

?>

Примечания

Внимание

Это не заставит сервер MongoDB отменять длительные операции; он только указывает драйверу прекратить ждать ответа и выдать исключение MongoCursorTimeoutException по истечении заданного времени. Если вам нужно указать время ожидания на стороне сервера для команды, рассмотрите возможность передачи опции maxTimeMS в MongoCollection::aggregateCursor().

Смотрите также