LISTEN
LISTEN — Attendre une notification
Description
LISTEN
enregistre la
session courante comme listener de la condition de notification
nom
. Si la session courante
est déjà enregistrée comme listener de cette condition de
notification, il ne se passe rien de plus.
À chaque appel de la commande
NOTIFY
nom
, que ce
soit par cette session ou par une autre connectée à la même base de
données, toutes les sessions attendant cette condition en sont
avisées et chacune en avise en retour son client. Voir
NOTIFY
pour plus d'informations.
La commande
UNLISTEN
permet d'annuler l'enregistrement d'une session comme listener
d'une condition de notification. Les enregistrements d'écoute d'une
session sont automatiquement effacés lorsque la session se termine.
La méthode utilisé par un client pour détecter les événements de
notification dépend de l'interface de programmation PostgreSQL™ qu'il utilise. Avec la
bibliothèque libpq, l'application
exécute
LISTEN
comme
une commande SQL ordinaire, puis appelle périodiquement la fonction
PQnotifies pour savoir si un événement de
notification est reçu. Les autres interfaces, telle libpgtcl, fournissent des méthodes de plus
haut niveau pour gérer les événements de notification ; en fait,
avec libpgtcl, le développeur de
l'application n'a même pas à lancer
LISTEN
ou
UNLISTEN
directement. Tous les
détails se trouvent dans la documentation de l'interface utilisée.
NOTIFY
décrit plus en détails l'utilisation de
LISTEN
et
NOTIFY
.
Paramètres
-
nom
-
Le nom d'une condition de notification (tout identifiant).
Exemples
Configurer et exécuter une séquence listen/notify à partir de
psql :
LISTEN virtual;
NOTIFY virtual;
Notification asynchrone "virtual" reçue en provenance du processus serveur de PID 8448.
Compatibilité
Il n'existe pas d'instruction
LISTEN
dans le standard SQL.