I have to do a certain calculation many many times. I want to split it over multiple cores, so I want to use child_process.fork(), and then pass each child a chunk of the work.
This works fine, except that my main process (the one that does the fork()) just keeps going after fork()ing and has already terminated by the time the children complete their work.
What I really want to do is wait for the children to finish before continuing execution.
I can’t find any good way to do this in Node. Any advice?
If you spawn a new V8 process via
.fork(), it returns a newchildobject which implements a communication layer. For instanceand within
/myfile.jsyou just dispatch an event when you’re done with the workBe aware of the fact that this method indeed spawns a new V8 instance, which eats a good chunk of memory. So you should use that very thoughtfully. Maybe you don’t even need to do it that way, maybe there is a more “node like” solution (using
process.nextTickto calculate heavy data).