MongoCursor::immortal

(PECL mongo >=1.0.1)

MongoCursor::immortalDéfinit si le curseur doit s'interrompre après un certain délai

Description

public MongoCursor::immortal ([ bool $liveForever = TRUE ] ) : MongoCursor

Après un certain délai sur le serveur, le curseur, par défaut, "meurt". C'est en général le comportement que nous souhaitons. La base de données nettoie le curseur une fois que ses résultats ont été envoyés au client, mais si le client ne demande pas tous les résultats, le curseur sera toujours "vivant", prenant ainsi des ressources. Aussi, après quelques minutes, le curseur atteint son délai d'expiration et la base de données considère que le client a récupéré tout ce dont il avait besoin et supprime les ressources allouées à ce curseur.

Si, pour une raison particulière, vous avez besoin d'un délai plus important avant que le curseur ne meurt, vous pouvez empécher la base de données de le supprimer en utilisant cette méthode. Cependant, si vous rendez un curseur "immortel", vous devez parcourir tous ses résultats (ou, tout du moins, jusqu'à ce que la méthode MongoCursor::dead() retourne FALSE) ou bien le curseur sera pour toujours actif, prenant ainsi des ressources par toujours nécessaire.

Liste de paramètres

liveForever

Si le curseur doit être immortel, ou non.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

add a note add a note

User Contributed Notes 2 notes

up
0
fastest963 at gmail dot com
11 years ago
Calling immortal(false), in order to remove the NO_TIMEOUT flag from the cursor, seems to crash with "Fatal error: Exception thrown without a stack frame in Unknown on line 0". I'm running PHP 5.2.17 and MongoDB driver 1.1.4.
up
0
iknox {at} info.com
12 years ago
Note:: There there is an important distinction between timeout and immortal!
Timeout indicates the time to wait on the _client_ side while immortal sets the cursor on the server side.

It is especially useful for large result sets in sharded environments.
To Top