слушателя просто пропадает или падает в очередь?
родная документация невнятна что-то по этому поводу.
Если нет ни одного подключения, подписанного на канал - пропадает, в документации это следует из "The NOTIFY command sends a notification event together with an optional "payload" string to each client application that has previously executed LISTEN channel for the specified channel name in the current database". имхо, этот механизм listen/notify в постгре - какая-то недоделка с ограниченным применением. Как-то пытался его использовать (на 9.5), для того чтобы пробуждать простаивающие консьюмеры, когда в таблицу задач пушится новая запись, и те смогли бы взять себе задачи - наткнулся на странный баг, когда при нагрузочном тестировании уведомление уходило не всем консьюмерам и они не пробуждались. ну и еще фича - имена каналов для функции pg_notify надо указывать в нижнем регистре, иначе сообщение не будет доставлено) и ошибки тоже не будет. а обычный NOTIFY принудительно приводит к нижнему
Обсуждают сегодня