PostgreSQL УВЕДОМЛЯЕТ очередь пустую после LISTEN - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок в PostgreSQL LISTEN / NOTIFY функции.После команды LISTEN,

LISTEN mychannel;

Мы можем NOTIFY сообщений на канал.

NOTIFY mychannel 'Hello';
  1. Эти NOTIFY сообщения сохраняются где-то вбаза данных.Куда?Могу ли я видеть сообщения, используя запрос выбора из таблицы?

  2. Если я NOTIFY 3 или 5 сообщений, они сохраняются в очереди.Я запускаю команду LISTEN, используя язык программирования, все сообщения обработаны и сообщения удалены из очереди.Если мой клиент упал, все сообщения будут потеряны.Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 19 февраля 2019

Боюсь, что вы неправильно поняли LISTEN.Это для асинхронной связи между активными сессиями.Сообщения нигде не хранятся.

Если вам нужна постоянная структура dara для связи между двумя частями вашего приложения, вы, вероятно, ищете очередь .

, так какочереди, как известно, трудно реализовать в реляционных базах данных, я предлагаю вам использовать одну из существующих сторонних реализаций для PostgreSQL.

LISTEN / NOTIFY может быть частью такой реализации очереди, чтобы сделать ее ненужнойчтобы получатели регулярно опрашивали очередь.

...