Php/docs/mongocursor.timeout
MongoCursor::timeout
(PECL mongo >=1.0.3)
MongoCursor::timeout — Sets a client-side timeout for this query
说明
public MongoCursor::timeout
( int $ms
) : MongoCursor
A timeout can be set at any time and will affect subsequent queries on the cursor, including fetching more results from the database.
参数
ms
- The number of milliseconds for the cursor to wait for a response. Use
-1
to wait forever. By default, the cursor will wait30000
milliseconds (30 seconds).
返回值
This cursor.
错误/异常
Causes methods that fetch results to throw a MongoCursorTimeoutException if the query takes longer than the specified number of milliseconds.
范例
Example #1 MongoCursor::timeout() example
In the following example, the driver will wait forever for the initial database response, and then wait 100ms for subsequent responses.
<?php$cursor = $collection->find();$cursor->timeout(-1);/* $cursor->hasNext() executes the query. An infinite timeout has been set, so * the driver will wait as long as necessary for a response. */while ($cursor->hasNext()) { $cursor->timeout(100); /* A timeout has now been set, so if the cursor needs to get more results * from the database, it will only wait 100ms for a response. */ try { print_r($cursor->getNext()); } catch (MongoCursorTimeoutException $e) { echo "query took too long!"; }}?>
注释
Warning This does not cause the MongoDB server to cancel long-running operations; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time. If you need to specify a server-side timeout for a query, consider using MongoCursor::maxTimeMS().
参见
- MongoCursorInterface::timeout() - Sets a client-side timeout for this query
- The
socketTimeoutMS
option for MongoClient::__construct()