Andres Freund wrote:
> On 2013-04-23 11:59:43 -0300, Alvaro Herrera wrote:
> > Andres Freund wrote:
> > > Hi all,
> > >
> > > I noticed the need to simply stop a bgworker after its work is done but
> > > still have it restart in unusual circumstances like a crash.
> > > Obviously I can just have it enter a loop where it checks its latch and
> > > such, but that seems a bit pointless.
> > >
> > > Would it make sense to add an extra return value or such for that?
> >
> > KaiGai also requested some more flexibility in the stop timing and
> > shutdown sequence. I understand the current design that workers are
> > always on can be a bit annoying.
> >
> > How would postmaster know when to restart a worker that stopped?
>
> I had imagined we would assign some return codes special
> meaning. Currently 0 basically means "restart immediately", 1 means
> "crashed, wait for some time", everything else results in a postmaster
> restart. It seems we can just assign returncode 2 as "done", probably
> with some enum or such hiding the numbers.
So a "done" worker would never be restarted, until postmaster sees a
crash or is itself restarted? I guess that'd be useful for workers
running during recovery, which terminate when recovery completes. Is
that your use case?
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services