From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | Igal Sapir <igal(at)lucee(dot)org> |
Cc: | pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Connecting to NOTIFY with telnet |
Date: | 2019-05-04 21:09:48 |
Message-ID: | CAMkU=1xPwx-1jd+x9xC74DTvPRXE85znaqiS4rRm2XSi5eOqcw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sat, May 4, 2019 at 3:04 PM Igal Sapir <igal(at)lucee(dot)org> wrote:
> Jeff,
>
> On Sat, May 4, 2019 at 11:34 AM Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
>
>> On Sat, May 4, 2019 at 1:49 PM Igal Sapir <igal(at)lucee(dot)org> wrote:
>>
>>> Christoph,
>>>
>>> On Sat, May 4, 2019 at 10:44 AM Christoph Moench-Tegeder <
>>> cmt(at)burggraben(dot)net> wrote:
>>>
>>>> ## Igal Sapir (igal(at)lucee(dot)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
>
From | Date | Subject | |
---|---|---|---|
Next Message | Igal Sapir | 2019-05-05 03:05:31 | Re: Connecting to NOTIFY with telnet |
Previous Message | Igal Sapir | 2019-05-04 19:03:48 | Re: Connecting to NOTIFY with telnet |