Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony2/Doctrine and PostgreSQL NOTIFY/LISTEN

I am writing a database application on PostgreSQL that has two parts:

  1. GUI - written in Symfony/Doctrine
  2. Processing - written in C/libpq

The processing component will process data from a table after it has been inserted by the GUI. However, how does the processing component know there is a change? My default answer would have been to use the PostgreSQL notify/listen commands, as I'm keen to avoid some kind of polling.

Questions:

  1. Is there some way that the Symfony application could use the postgresql notify command? Doctrine supports Native SQL selects, but I don't believe this is what I need.

  2. Any other ideas?

Thanks in advance.

like image 441
ritter Avatar asked May 24 '26 18:05

ritter


1 Answers

A native SELECT should be entirely sufficient.

While you usually use the NOTIFY statement, it's also possible to call the pg_notify function for the same effect.

SELECT pg_notify('key','payload');

Your worker can LISTEN key; as normal, and will receive notifications generated this way the same as if NOTIFY was used.

like image 99
Craig Ringer Avatar answered May 26 '26 06:05

Craig Ringer