On Mon, Mar 24, 2014 at 12:20 PM, Michael Paquier <michael.paqu...@gmail.com > wrote:
> On Mon, Mar 24, 2014 at 5:54 PM, Magnus Hagander <mag...@hagander.net> > wrote: > > I was looking at > http://www.postgresql.org/docs/devel/static/bgworker.html > > with a client today. > > > > It says: > > "Unlike RegisterBackgroundWorker, which can only be called from within > the > > postmaster,RegisterDynamicBackgroundWorker must be called from a regular > > backend." > > > > Is that the correct restriction? In particular, don't we allow calling > > RegisterDynamicBackgroundWorker from another background worker? (In the > > launcher/worker kind of scenario, like AutoVacuum). > Yes, you can start a dynamic background worker from another background > worker, have a look for example at contrib/worker_spi. Perhaps the > correct wording would be "RegisterDynamicBackgroundWorker must be > called from a regular backend or another background worker". > > That's what I thought. Can a dynamic background worker start *another* dynamic background worker, or can they only be started from "first level" background workers? > > Also: > > "Background workers are expected to be continuously running; if they exit > > cleanly, postgres will restart them immediately. " > > > > This doesn't apply to dynamic ones, which we might want to clarify. Do we > > have a "term" for non-dynamic background workers? "static workers"? > In the code or the documentation, there is no explicit > differentiation, bgworkers are either called plainly "bgworker", or > "dynamic bgworker". Perhaps the solution here is simply to say > "background workers started by the postmaster are expected blabla". > That, or we need to invite a term for it? -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/