Есть ли способ использовать функцию прослушивания / уведомления Postgres для доставки сообщения на канал, и только один слушатель может использовать это сообщение?
Цель этого заключается в том, чтобы у меня было несколько «рабочих» приложений, которые все слушали один и тот же канал Postgres. Но я хочу, чтобы работа выполнялась только один раз для каждого сообщения, полученного через канал уведомлений.
Если функция прослушивания / уведомления не является правильной функцией в Postgres, есть ли отдельная функция, которую я должен использовать?
В идеале я хотел бы сделать это без использования каких-либо дополнительных расширений.
Я сделал что-то подобное некоторое время назад с хорошим успехом, я использовал RabbitMQ и этот плагин https://github.com/gmr/pgsql-listen-exchange
В основном RabbitMQ подключается к PostgreSQL и прослушивает событие notify, затем вы можете использовать RabbitMQ для агрегирования этого сообщения в столько очередей, сколько необходимо, и иметь приложение, потребляющее каждую очередь
источник