Existe-t-il un moyen d'utiliser la fonction Postgres Listen / Notify pour envoyer un message à un canal et qu'un seul auditeur consomme ce message?
Le but de ceci est que j'ai plusieurs applications «ouvrières» écoutant toutes le même canal Postgres. Mais je ne veux que le travail soit effectué une fois par message reçu via le canal de notification.
Si Listen / Notify n'est pas la fonctionnalité correcte dans Postgres, y a-t-il une fonctionnalité distincte que je devrais utiliser?
Idéalement, je voudrais le faire sans utiliser d'extensions supplémentaires.
J'ai fait quelque chose comme ça il y a quelque temps avec un bon succès, j'ai utilisé RabbitMQ et ce plugin https://github.com/gmr/pgsql-listen-exchange
Fondamentalement, RabbitMQ se connecte à PostgreSQL et écoute l'événement de notification, alors vous pouvez utiliser RabbitMQ pour agréger ce message à autant de files d'attente que nécessaire et avoir une application consommant chaque file d'attente
la source