¿Hay alguna forma de usar la función de escucha / notificación de Postgres para entregar un mensaje a un canal y que solo un oyente consuma este mensaje?
El propósito de esto es que tengo múltiples aplicaciones 'trabajadoras', todas escuchando el mismo canal de Postgres. Pero solo quiero que el trabajo se realice una vez por mensaje recibido a través del canal de notificación.
Si Listen / Notify no es la función correcta en Postgres, ¿hay una función separada que debería usar?
Idealmente, me gustaría hacer esto sin usar extensiones adicionales.
fuente
Hice algo así hace un tiempo con buen éxito, utilicé RabbitMQ y este complemento https://github.com/gmr/pgsql-listen-exchange
Básicamente RabbitMQ se conecta a PostgreSQL y escucha el evento de notificación, luego puede usar RabbitMQ para agregar ese mensaje a tantas colas como sea necesario y tener una aplicación consumiendo cada cola
fuente