Re: How to kill a Background worker and Its metadata
От | Craig Ringer |
---|---|
Тема | Re: How to kill a Background worker and Its metadata |
Дата | |
Msg-id | CAMsr+YGcgAg5Z2MJD5tgooMw_k98ROLXMw0hLbUAqMq16KxDkQ@mail.gmail.com обсуждение исходный текст |
Ответ на | How to kill a Background worker and Its metadata (Akash Agrawal <aagrawa6@ncsu.edu>) |
Ответы |
Re: How to kill a Background worker and Its metadata
|
Список | pgsql-hackers |
On 28 June 2016 at 02:27, Akash Agrawal <aagrawa6@ncsu.edu> wrote:
Hi,I've created a background worker and I am using Postgresql-9.4. This bgworker handles the job queue dynamically and goes to sleep if there is no job to process within the next 1 hour.Now, I want to have a mechanism to wake the bgworker up in case if someone adds a new job while the bgworker is in sleep mode. So to do it, I have created a trigger which initially removes the existing background worker and then registers a new one.
Don't do that.
Instead, set the background worker's process latch, which you can find in the PGPROC array. There are a variety of examples of how to set latches in the sources.
I am retrieving the pid from pg_Stat_activity. The maximum number of background worker that can run simultaneously is equal to 8. I think even if I call pg_terminate_backend the metadata of the background worker is not being deleted
Correct. Unless you register it as a dynamic bgworker with no automatic restart, it'll get restarted when it exits uncleanly.
Have the worker call proc_exit(0) if you want it not to be restarted.
В списке pgsql-hackers по дате отправления: