Re: LISTEN/NOTIFY and python

Поиск
Список
Период
Сортировка
От John D. Burger
Тема Re: LISTEN/NOTIFY and python
Дата
Msg-id 39DE6D28-6DDA-460C-B2B7-D76C04B59EEB@mitre.org
обсуждение исходный текст
Ответ на Re: LISTEN/NOTIFY and python  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: LISTEN/NOTIFY and python  (Tino Wildenhain <tino@wildenhain.de>)
Список pgsql-general
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


В списке pgsql-general по дате отправления:

Предыдущее
От: Alban Hertroys
Дата:
Сообщение: Re: Planner tuning
Следующее
От: Jeff Davis
Дата:
Сообщение: Re: Reference Type in PostgreSQL