MongoCursor::tailable
MongoCursor::valid
MongoCursor
PHP Manual

# MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeout — このクエリのクライアント側のタイムアウトを設定する

### 説明

public MongoCursor MongoCursor::timeout ( int `$ms` )

タイムアウトはいつでも設定可能で、同じカーソルでのそれ以降のクエリに影響を及ぼします。 また、データベースからのさらなる結果の取得にもこれは影響します。

### パラメータ

`ms`

  カーソルがレスポンスを待つミリ秒数。 ずっと待ち続ける場合は -1 を指定します。 デフォルトでは、MongoCursor::$timeout で指定したミリ秒数だけ待ちます。

### 返り値

このカーソルを返します。

### エラー / 例外

指定したミリ秒数を超える長さのクエリを実行すると、結果を取得するメソッドが MongoCursorTimeoutException をスローするようになります。

### 例

例1 MongoCursor::timeout() の例

この例では、最初のレスポンスはずっと待ち続けるけれども それ以降の結果は 100 ミリ秒でタイムアウトさせるようにします。

`<?php
$cursor = $collection->find();
$cursor->timeout(-1);
/* $cursor->hasNext() はクエリを実行します。タイムアウトが設定されていないので、
* レスポンスが得られるまでずっと待ち続けます
*/
while ($cursor->hasNext()) {
$cursor->timeout(100);
/* タイムアウトが設定されました。カーソルからデータベースにさらに
* 結果を問い合わせるときは、データベースからのレスポンスを 100 ミリ秒しか待ちません
*/
try {
print_r($cursor->getNext());
} catch (MongoCursorTimeoutException $e) {
echo "query took too long!";
}
}
?>`

### 注意

警告

これは、MongoDB サーバー上で時間がかかっている操作をキャンセルさせるわけではありません。 ドライバが結果を待ち続ける時間を指定して、それに達したら MongoCursorTimeoutException をスローするだけです。

MongoCursor::tailable
MongoCursor::valid
MongoCursor
PHP Manual