Reputation: 2031
I'm working with node.js and I want to when there's a request to a url like ./calculate start a new process to make these complex calculations, and I want that process to continue even if the script which called it has finished. Is it possible?
Thank you.
Upvotes: 12
Views: 20349
Reputation: 6339
So after your last comment I know understand better what you want to do.
You want to spawn process not child process. The best and cleaner way to do this is to use some kind of demonizier to run them.
Have a look at forever:
https://github.com/nodejitsu/forever
https://github.com/nodejitsu/forever-monitor
This could be the perfect tool for you. I've never used it programatically, just cli. But this is what I'd look into.
Upvotes: 1
Reputation: 2035
You can use the natively provided child process facility: http://nodejs.org/api/child_process.html
And use the unix "nohup" command to keep the spawned process alive even if the parent process died.
Upvotes: 5
Reputation: 6339
There are different approach to this.
You could use https://github.com/pgriess/node-webworker.
Or much better http://nodejs.org/docs/latest/api/cluster.html#cluster_cluster.
Those solutions are if you want to do a subprocess in Node, you could also simply spawn a new Node process and wait for the output (http://nodejs.org/api/all.html#all_child_process_spawn_command_args_options) but node-webworker is a wrapper around that solution and is a much cleaner.
Upvotes: 3