Interesting Sam, but what if I set a flag that is checked every
process.nextTick and suspends redis updates, so what's left is finishing
iterating over in-memory items?

On Wed, Dec 10, 2014 at 8:47 PM, Sam Roberts <s...@strongloop.com> wrote:

> >> On Monday, December 8, 2014 at 3:47 PM, Ω Alisson wrote:
> >>
> >> I'm running a Node app that fetches Redis data into another database.
> It´s
> >> using the cluster module, everything works fine but I need to ensure
> that
> >> workers will finish properly their jobs(they use BRPOP then allocate
> into a
> >> object then insert in batches cleaning the objects), how do I do this?
>
>
> On Tue, Dec 9, 2014 at 7:33 AM, Ω Alisson <thelinuxl...@gmail.com> wrote:
> > if I do something like this on a worker process, wouldn't be effective?
> >
> > process.on("message", function(m) {
> >   if(m.cmd === "disconnect") {
> >      // cleanup logic
> >   }
> > })
>
> If I understand correctly, you want workers to be given a chance to
> finish what they are doing when disconnected using node cluster?
>
> In principle this works, though that message doesn't exist (unless you
> send it?). You don't say how/when you fork and/or disconnect workers.
>
> Generally, this would happen in gracefull shutdown by calling
> `cluster.disconnect()` in the node master. Unfortunately, while that
> waits
> for cluster worker ***servers*** to close, it doesn't wait for
> clients, like redis clients. LIke yours, likely.
>
> You can trap the disconnect message if you are willing to use node
> internals: https://gist.github.com/sam-github/8185222
>
> node cluster should really expose that event, IMO, but so it goes, for
> the moment.
>
> Most supervisors, strongloops's included, offer a way to inform the
> worker that it should cleanup. `slc run` sends a shutdown message,
>
> https://github.com/strongloop/strong-cluster-control/blob/master/api.md#controlcmdshutdown
> ,
> for example, when shutting down, and gives 60seconds grace to the
> worker (configurable), before SIGTERMing it.
>
> Cheers,
> Sam
>
> --
> Job board: http://jobs.nodejs.org/
> New group rules:
> https://gist.github.com/othiym23/9886289#file-moderation-policy-md
> Old group rules:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to nodejs+unsubscr...@googlegroups.com.
> To post to this group, send email to nodejs@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/nodejs/CACmrRmSaa5hb6zSwSP6Z8YX7PdifXxnE-%2BsZdbosVDmgXOegrw%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/CACZE8Y482nhYEYvR6wYMf64cou_vt-XmsJo9sro3q1XAhAn3WA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to