我想添加一些管理实用程序到一个小的Web应用程序,如“备份数据库”。用户将点击一个按钮,HTTP响应将立即返回,尽管可能长时间运行的进程已在后台启动。node.js中的“产生线程”式行为
在Java中,这可能会通过使用Actor在Scala中产生一个独立的线程来实现。但是,node.js中的适当成语是什么? (代码段赞赏)
我现在正在重新阅读文档,这确实看起来是一个节点101的问题,但这几乎是我在这上面...无论如何,澄清这是基本情况:
function onRequest(request, response) {
doSomething();
response.writeHead(202, headers);
response.end("doing something");
}
function doSomething(){
// long-running operation
}
我想让响应立即返回,并使doSomething()在后台运行。
好吧,给定节点的单线程模型,如果不产生另一个OS级别的ChildProcess,看起来不可能。我的误解。
在我的代码中,我需要的备份大多是基于I/O的,所以节点应该以很好的异步方式处理它。我想我会做的是将doSomething转移到response.end之后,看看它是如何表现的。
我相信你浏览过文档。 http://nodejs.org/docs/v0.4.7/api/index.html我认为这取决于你的过程的性质,但看看儿童进程。 – supertopi 2012-04-06 11:36:57
谢谢。看起来我的问题根源在于对node如何工作的深刻误解:) Child Process是我的想法,虽然不是最简单的解决方案,请参阅下面的Joe的回复。 – danja 2015-08-14 18:05:17