Re: How to run a task continuously in the background
От | Luca Ferrari |
---|---|
Тема | Re: How to run a task continuously in the background |
Дата | |
Msg-id | CAKoxK+4XysF-aA3VvFMn6pQYXsgs1o92JZ5uGx8=18Fr8+q4xA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: How to run a task continuously in the background (Dirk Mika <Dirk.Mika@mikatiming.de>) |
Ответы |
Re: How to run a task continuously in the background
Re: How to run a task continuously in the background |
Список | pgsql-general |
On Wed, Jul 17, 2019 at 9:38 AM Dirk Mika <Dirk.Mika@mikatiming.de> wrote: > That is basically still my main question. How do I start a background job (e.g. a function) which waits by polling or LISTEN/ NOTIFY for records in a table to be processed. You will have a trigger that, once new tuples are created (or older update and so on) issues a NOTIFY. Somewhere (within PostgreSQL or outside it) there will be a process that issued a LISTEN and is locked until a notify comes in. Then it does process whatever you need to do. As an example your trigger function will be something like <https://github.com/fluca1978/PostgreSQL-11-Quick-Start-Guide/blob/master/Chapter09/Chapter09_Listing05.sql> and your listening process will be something like <https://github.com/fluca1978/PostgreSQL-11-Quick-Start-Guide/blob/master/Chapter09/Chapter09_Listing09.perl>. This makes your processing fully asynchronous, and with some tune allows you to decide the start/stop/resume policy as you need/wish. Besides, it is quite hard for me to get to the point where you need to check for new data every second, and therefore why you are not satisfied with pg_cron or stuff like that. Luca
В списке pgsql-general по дате отправления: