PHP 7.3.14 Released

MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeoutSets a client-side timeout for this query

Beschreibung

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.

Parameter-Liste

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

R├╝ckgabewerte

This cursor.

Fehler/Exceptions

Causes methods that fetch results to throw a MongoCursorTimeoutException if the query takes longer than the specified number of milliseconds.

Beispiele

Beispiel #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!";
    }
}

?>

Anmerkungen

Warnung

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().

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
1
Robert Ross
8 years ago
To set timeouts for all queries, do this:

MongoCursor::$timeout = -1 (-1 is no timeout)
To Top