Thread: Async_Notify
Hello! I wrote my extension for PG and am trying to run Async_Notify from it. But messages come very late! Sometimes only after I execute the notify command from the shell. What am I doing wrong? How to use Async_Notify correctly.
--
Арсен Арутюнян
Арсен Арутюнян
Hi
pá 13. 12. 2019 v 10:00 odesílatel Арсен Арутюнян <arutar@bk.ru> napsal:
Hello! I wrote my extension for PG and am trying to run Async_Notify from it. But messages come very late! Sometimes only after I execute the notify command from the shell. What am I doing wrong? How to use Async_Notify correctly.
I am not sure what mechanism do you use.
Notify messages are send after successful end of transaction.
Regards
Pavel
--
Арсен Арутюнян
I'm trying to send a notification from the PG extension directly.
It turns out the mechanism that is used in the async file. (Async_Notify) does not suit me since the function uses oldcontext = MemoryContextSwitchTo (CurTransactionContext); and MemoryContextSwitchTo (oldcontext);
And I did not find the ability to add notification except the Async_Notify function.
And I did not find the ability to add notification except the Async_Notify function.
Now only SPI_execute works ("NOTIFY chanel,’message’", false, 0);
P.S. In my extension, there is already a higher function started with oldcontext = MemoryContextSwitchTo (CurTransactionContext); and MemoryContextSwitchTo (oldcontext);
Пятница, 13 декабря 2019, 12:19 +03:00 от Pavel Stehule <pavel.stehule@gmail.com>:
Hipá 13. 12. 2019 v 10:00 odesílatel Арсен Арутюнян <arutar@bk.ru> napsal:Hello! I wrote my extension for PG and am trying to run Async_Notify from it. But messages come very late! Sometimes only after I execute the notify command from the shell. What am I doing wrong? How to use Async_Notify correctly.I am not sure what mechanism do you use.Notify messages are send after successful end of transaction.RegardsPavel--
Арсен Арутюнян
--
Арсен Арутюнян
Арсен Арутюнян
pá 13. 12. 2019 v 12:30 odesílatel Арсен Арутюнян <arutar@bk.ru> napsal:
I'm trying to send a notification from the PG extension directly.It turns out the mechanism that is used in the async file. (Async_Notify) does not suit me since the function uses oldcontext = MemoryContextSwitchTo (CurTransactionContext); and MemoryContextSwitchTo (oldcontext);
And I did not find the ability to add notification except the Async_Notify function.Now only SPI_execute works ("NOTIFY chanel,’message’", false, 0);P.S. In my extension, there is already a higher function started with oldcontext = MemoryContextSwitchTo (CurTransactionContext); and MemoryContextSwitchTo (oldcontext);
NOTIFY just push message to queue and waiting on end of transaction.
This is by design and you cannot to change it.
Regards
Pavel
Пятница, 13 декабря 2019, 12:19 +03:00 от Pavel Stehule <pavel.stehule@gmail.com>:
Hipá 13. 12. 2019 v 10:00 odesílatel Арсен Арутюнян <arutar@bk.ru> napsal:Hello! I wrote my extension for PG and am trying to run Async_Notify from it. But messages come very late! Sometimes only after I execute the notify command from the shell. What am I doing wrong? How to use Async_Notify correctly.I am not sure what mechanism do you use.Notify messages are send after successful end of transaction.RegardsPavel--
Арсен Арутюнян--
Арсен Арутюнян