On Sat, May 4, 2019 at 3:04 PM Igal Sapir <i...@lucee.org> wrote:

> Jeff,
>
> On Sat, May 4, 2019 at 11:34 AM Jeff Janes <jeff.ja...@gmail.com> wrote:
>
>> On Sat, May 4, 2019 at 1:49 PM Igal Sapir <i...@lucee.org> wrote:
>>
>>> Christoph,
>>>
>>> On Sat, May 4, 2019 at 10:44 AM Christoph Moench-Tegeder <
>>> c...@burggraben.net> wrote:
>>>
>>>> ## Igal Sapir (i...@lucee.org):
>>>>
>>>> > My main "issue" is that the official pgjdbc driver does not support
>>>> the
>>>> > notifications with listen and I was trying to figure out why.
>>>>
>>>> https://jdbc.postgresql.org/documentation/head/listennotify.html
>>>>
>>>>
>>> I should have been more explicit.  My main issue is with the following
>>> statement from the link that you posted:
>>>
>>> > A key limitation of the JDBC driver is that it cannot receive
>>> asynchronous notifications and must poll the backend to check if any
>>> notifications were issued
>>>
>>> Polling is much less efficient than event handling and I'm sure that
>>> there's a major performance hit with that.
>>>
>>
>> Isn't that addressed here?:
>>
>>                 // If this thread is the only one that uses the
>> connection, a timeout can be used to
>>                 // receive notifications immediately:
>>                 // org.postgresql.PGNotification notifications[] =
>> pgconn.getNotifications(10000);
>>
>>
> It "helps", but it's still not the same as keeping the connection open and
> receiving messages in real time.
>

But it is the same as that.  It keeps the connection open, and receives the
messages in real time.  It blocks either until it gets a NOTIFY, or for 10
seconds, whichever occurs first.  You can use 0 to block forever until a
NOTIFY arrives.  Maybe you didn't remove the sleep a few lines further
down?  Or is there some other problem here?

Cheers,

Jeff

>

Reply via email to