Mario
Mario

Reputation: 2031

Start new process on nodejs

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

Answers (3)

3on
3on

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

Roman
Roman

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

3on
3on

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

Related Questions