Czy istnieje sposób użycia funkcji Postgres Listen / Notify w celu dostarczenia wiadomości do kanału i umożliwienia korzystania z niej tylko przez jednego słuchacza?
Celem tego jest to, że mam wiele aplikacji „roboczych”, wszystkie słuchają tego samego kanału Postgres. Ale chcę, aby praca była wykonywana tylko raz dla każdej wiadomości otrzymanej za pośrednictwem kanału powiadomień.
Jeśli Listen / Notify nie jest poprawną funkcją Postgres, czy jest jakaś osobna funkcja, której powinienem używać?
Idealnie chciałbym to zrobić bez użycia dodatkowych rozszerzeń.
źródło
Zrobiłem coś takiego z powodzeniem, użyłem RabbitMQ i tej wtyczki https://github.com/gmr/pgsql-listen-exchange
Zasadniczo RabbitMQ łączy się z PostgreSQL i nasłuchuje zdarzenia powiadomienia, a następnie można użyć RabbitMQ do agregowania tej wiadomości do tylu kolejek, ile potrzeba, i aplikacja zużywa każdą kolejkę
źródło