Re: NOTIFY in asynchronous mode

Поиск
Список
Период
Сортировка
От Jan Urbański
Тема Re: NOTIFY in asynchronous mode
Дата
Msg-id 4EB4818E.6020205@wulczer.org
обсуждение исходный текст
Ответ на NOTIFY in asynchronous mode  (Tobias Oberstein <tobias.oberstein@tavendo.de>)
Ответы Re: NOTIFY in asynchronous mode  (Daniele Varrazzo <daniele.varrazzo@gmail.com>)
Список psycopg
On 05/11/11 01:15, Daniele Varrazzo wrote:
> On Sat, Nov 5, 2011 at 12:03 AM, Jan Urbański <wulczer@wulczer.org> wrote:
>> On 04/11/11 21:23, Daniele Varrazzo wrote:
>>> On Fri, Nov 4, 2011 at 7:12 PM, Tobias Oberstein
>>> <tobias.oberstein@tavendo.de> wrote:
>>>
>>>> is it possible to use notification (sent via NOTIFY from Postgres) in asynchronous mode?
>>>
>>> Yes: you should register the connection's file descriptor in the
>>> twisted reactor so that you can be notified by the kernel when the
>>> server sends you a notification.
>>
>> Actually... it won't work out of the box. I got a patch from someone
>> that added NOTIFY support for txpostgres, but it broke some unit tests
>> and there were a few other minor issues with it and then I kind of
>> forgot about it.
>
> Is it possible to use a naked psycopg connection instead of tx? I
> mean, not for the regular query-return cycle, but just for sitting
> idle in the reactor and get a callback called upon notify.

Not in an easy way, I'm afraid. Stuff put in the reactor as readers need
to implement the IReadDescriptor interface[0] which means you'd have to
wrap the connection object with something that proxies fileno() to the
connection and looks for notifies when doRead() is called on it.

Since you have to connect first, and issue the LISTEN statement, you
have to go through the entire polling cycle, at which point you
basically would have implemented half of txpostgres :)

J

[0]
http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IReadDescriptor.html

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

Предыдущее
От: Daniele Varrazzo
Дата:
Сообщение: Re: NOTIFY in asynchronous mode
Следующее
От: Daniele Varrazzo
Дата:
Сообщение: Re: NOTIFY in asynchronous mode