【发布时间】:2012-08-06 06:10:41
【问题描述】:
我正在使用 node.js,并且我希望在有对 ./calculate 之类的 url 的请求时启动一个新进程来进行这些复杂的计算,并且我希望该进程继续进行,即使调用它的脚本也是如此已完成。 有可能吗?
谢谢。
【问题讨论】:
标签: javascript node.js process
我正在使用 node.js,并且我希望在有对 ./calculate 之类的 url 的请求时启动一个新进程来进行这些复杂的计算,并且我希望该进程继续进行,即使调用它的脚本也是如此已完成。 有可能吗?
谢谢。
【问题讨论】:
标签: javascript node.js process
您可以使用本机提供的子进程工具: http://nodejs.org/api/child_process.html
并使用 unix "nohup" 命令来保持生成的进程在父进程死亡的情况下仍处于活动状态。
【讨论】:
对此有不同的方法。
你可以使用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 是该解决方案的包装器,并且更清洁。
【讨论】:
所以在你最后的评论之后,我知道更清楚你想要做什么。
您想要生成进程而不是子进程。最好和更干净的方法是使用某种恶魔化器来运行它们。
永远看看:
https://github.com/nodejitsu/forever
https://github.com/nodejitsu/forever-monitor
这可能是您的完美工具。我从来没有以编程方式使用过它,只是 cli。但这是我要研究的。
【讨论】: