Listen and notify in psql process

Started by Sakshi Jainalmost 5 years ago5 messagesgeneral
Jump to latest
#1Sakshi Jain
sakshijain10388@gmail.com

Hi Team,

How to listen from within a psql process and get the payloads?

Do Postgres have any such a mechanism where in a session a process send a
"listen <name>" sql command and then gets a message if someone in the other
session issued a "notify <name>".

Please provide an example of how to do this.

--
*Thanks & Regards*
Sakshi Jain
New Delhi
8882433263

#2Sakshi Jain
sakshijain10388@gmail.com
In reply to: Sakshi Jain (#1)
Fwd: Listen and notify in psql process

Hi Team,

How to listen from within a psql process and get the payloads?

Do Postgresql have any such a mechanism where in a session a process send a
"listen <name>" sql command and then gets a message if someone in the other
session issued a "notify <name>".

Please provide an example of how to do this.

I am looking for listen to return some thing when a notify has been issued.

--
*Thanks & Regards*
Sakshi Jain
New Delhi
8882433263

--
*Thanks & Regards*
Sakshi Jain
New Delhi
8882433263

#3Ravi Krishna
srkrishna@yahoo.com
In reply to: Sakshi Jain (#2)
#4Torsten Förtsch
tfoertsch123@gmail.com
In reply to: Sakshi Jain (#2)
Re: Listen and notify in psql process

On Thu, Jun 17, 2021 at 1:04 PM Sakshi Jain <sakshijain10388@gmail.com>
wrote:

How to listen from within a psql process and get the payloads?

Do Postgresql have any such a mechanism where in a session a process send
a "listen <name>" sql command and then gets a message if someone in the
other session issued a "notify <name>".

Please provide an example of how to do this.

I am looking for listen to return some thing when a notify has been issued.

Here is an example in perl. Basically you issue the LISTEN command. Then
you sit and watch the file descriptor to become ready. You do that outside
of a transaction. Once the descriptor is ready you call your driver's
version of notification read function until it comes back empty. That is
when you go back and wait for the next arrival.

$dbh->do("LISTEN channel");
my $sel = IO::Select->new;
$sel->add($dbh->{pg_socket});
while ($sel->can_read) {
while (my $notify = $dbh->pg_notifies) {
my ($name, $pid, $payload) = @$notify;
do_something($payload);
}
}

Show quoted text
#5Erik Brandsberg
erik@heimdalldata.com
In reply to: Sakshi Jain (#1)
Re: Listen and notify in psql process

Google for Postgres listen notify... ;) It is in the documentation.

On Thu, Jun 17, 2021 at 7:02 AM Sakshi Jain <sakshijain10388@gmail.com>
wrote:

Hi Team,

How to listen from within a psql process and get the payloads?

Do Postgres have any such a mechanism where in a session a process send a
"listen <name>" sql command and then gets a message if someone in the other
session issued a "notify <name>".

Please provide an example of how to do this.

--
*Thanks & Regards*
Sakshi Jain
New Delhi
8882433263

--
*Erik Brandsberg*
erik@heimdalldata.com

www.heimdalldata.com
+1 (866) 433-2824 x 700
[image: AWS Competency Program]
<https://aws.amazon.com/partners/find/partnerdetails/?n=Heimdall%20Data&amp;id=001E000001d9pndIAA&gt;