11

我正在使用node.js,并且我希望在有对像./calculate 这样的url 的请求时启动一个新进程来进行这些复杂的计算,并且即使调用它的脚本已经完成,我也希望该进程继续进行。可能吗?

谢谢你。

4

3 回答 3

5

您可以使用本机提供的子进程工具: http ://nodejs.org/api/child_process.html

并使用 unix "nohup" 命令使生成的进程保持活动状态,即使父进程死亡。

于 2012-08-09T12:33:40.547 回答
3

对此有不同的方法。

您可以使用https://github.com/pgriess/node-webworker

或者更好的http://nodejs.org/docs/latest/api/cluster.html#cluster_cluster

这些解决方案是,如果您想在 Node 中执行子进程,您也可以简单地生成一个新的 Node 进程并等待输出(http://nodejs.org/api/all.html#all_child_process_spawn_command_args_options)但 node-webworker 是包装该解决方案并且更清洁。

于 2012-08-09T03:20:02.953 回答
1

因此,在您的最后评论之后,我更了解您想要做什么。

您想生成进程而不是子进程。最好和更干净的方法是使用某种恶魔化器来运行它们。

看看永远:
https ://github.com/nodejitsu/forever
https://github.com/nodejitsu/forever-monitor

这可能是您的完美工具。我从来没有以编程方式使用它,只是 cli。但这是我要研究的。

于 2012-08-10T07:17:12.197 回答