Самоучитель по SQL-сервер в Linux



LISTEN

Ожидание уведомлений о событиях.

Синтаксис

LISTEN событие

Параметры

Имя события, ожидаемого сервером.

Результаты

  • LISTEN. Сообщение возвращается при успешном выполнении команды, когда серверный процесс ожидает уведомления.
  • NOTICE: Async_Listen: We are already listening on событие. Сообщение возвращается в том случае, если сервер уже ожидает уведомления об указанном событии.

Описание

Пара команд NOTIFY и LISTEN обеспечивает взаимодействие между компонентами PostgreSQL. Получив команду LISTEN, серверный процесс ожидает событие с указанным именем. Уведомления передаются командой NOTIFY, которая обычно включается в правила, отслеживающие изменения в различных компонентах базы данных. Таким образом, все «слушатели» автоматически оповещаются об изменении ситуации.

Команда NOTIFY, выполненная любым процессом, рассылает оповещения всем работающим серверным процессам, ожидающим данного события. Когда серверный процесс получает уведомление, он передает его клиентскому приложению (например, psql), а клиентское приложение распоряжается им по своему усмотрению. За дополнительной информацией об этом механизме межпроцессных взаимодействий обращайтесь к описанию команды NOTIFY.

Имя события представляет собой произвольную строку длиной не более 31 символа (то же относится и к команде NOTIFY). Чтобы вывести серверный процесс из состояния ожидания, воспользуйтесь командой UNLISTEN.

Пример

В следующем фрагменте продемонстрированы ожидание и уведомление о событии в клиенте psql:

booktown=# LISTEN publisherjjpdate;

LISTEN

booktown=# NOTIFY publisherjjpdate:

Asynchronous NOTIFY 'publisherjjpdate' from backend with pid '16864' received.




Книжный магазин