Re: background worker and normal exit - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: background worker and normal exit
Date
Msg-id CAB7nPqQAsTw1WBritdMbmSO4iurqNqPgwjW=u_Z35SPpcw4+FQ@mail.gmail.com
Whole thread
In response to Re: background worker and normal exit  (Bernd Helmle <mailings@oopsware.de>)
Responses Re: background worker and normal exit
List pgsql-hackers
On Mon, May 27, 2013 at 2:04 AM, Bernd Helmle <mailings@oopsware.de> wrote:


--On 26. Mai 2013 11:38:55 +0900 Michael Paquier <michael.paquier@gmail.com> wrote:


This flag makes a worker not to restart only in case of a crash. To solve
your problem, you could as well allow your process to restart and put it
in indefinite sleep if server is not in recovery such it it will do
nothing in your case.

Hmm so you can't have workers just "doing something once" and exit? I have to admit, i didn't follow bgworkers closely in the past, but could you give a short insight on why this is currently not possible?
Bgworkers are expected to run all the time, and will be restarted each time they exit cleanly with a status code 0. Note that they are *still* restarted immediately even if bgw_restart_time is set at BGW_NEVER_RESTART or to a certain value.
There are actually two ways you can use to have them perform a one-time task:
- put it in indefinite sleep after the task is accomplished
- set bgw_restart_time to BGW_NEVER_RESTART. and have the bgworler exit with non-0 status code.

Regards,
--
Michael

pgsql-hackers by date:

Previous
From: Noah Misch
Date:
Subject: Re: Parallel Sort
Next
From: Stephen Frost
Date:
Subject: Re: Parallel Sort