Tom Lane wrote:
> The standard approach when using libpq directly is to get the file
> descriptor number of the backend connection with PQsocket(), then
> include that in the set of FDs that the client app's idle loop
> select()s or poll()s on.
And Tino Wildenhain, in off-list mail, described getting the socket-
fd from the PyGreSQL connection object and doing something analogous.
It turns out that Python's listen() takes ints =or= objects with a
fileno() method, whence it gets the int, and PyGreSQL's connection
objects qualify. So I can do this:
import pg, select
con = pg.connect(...)
con.query("listen foo")
while True:
select.select([con], [], []) # Wait for it ...
print con.getnotify()
I wish I could do this with the more "standard" pgdb module, but,
then again, LISTEN/NOTIFY aren't standard. Thanks, Tino and Tom, for
the pointers toward this solution.
- John D. Burger
MITRE