Multithreading Node.js是否适合计算密集型web服务
我将创建一组包含计算密集型代码的web服务。计算时间从1/2秒到20秒不等。计算是用C代码实现的 我可能不会有超过20个同时的web服务请求,其中只有几个是运行时间较长的计算 我的理解是node.js在单个线程中运行,因此我必须编写一个node.js插件,该插件将与我的C代码接口。然后,C代码必须在自己的线程中执行。我将使用node.js提供的线程池异步运行这些计算。我会在多核机器上运行它,以最大限度地提高性能Multithreading Node.js是否适合计算密集型web服务,multithreading,apache,node.js,iis,computation,Multithreading,Apache,Node.js,Iis,Computation,我将创建一组包含计算密集型代码的web服务。计算时间从1/2秒到20秒不等。计算是用C代码实现的 我可能不会有超过20个同时的web服务请求,其中只有几个是运行时间较长的计算 我的理解是node.js在单个线程中运行,因此我必须编写一个node.js插件,该插件将与我的C代码接口。然后,C代码必须在自己的线程中执行。我将使用node.js提供的线程池异步运行这些计算。我会在多核机器上运行它,以最大限度地提高性能 我描述的架构听起来正确吗?node.js适合这样做吗?Apache或IIS在这样的应
我描述的架构听起来正确吗?node.js适合这样做吗?Apache或IIS在这样的应用程序中会更好吗?您可以制作一个本机C程序,让node执行二进制文件,并在完成后回调。我认为有两种方法,下面是一个
child\u process.exec(command,[options],callback)
复制自:
编辑如果启动流程后需要将输入传递给流程,请改用 Node可以很好地处理apache的任务;我使用主机文件和动态页面;我的应用程序逻辑是javascript代码,当对特定路由发出特定HTTP请求时,Express会调用该代码
你可能会使你的机器陷入困境,除非你限制同步计算。我对线程池没有任何知识或评论。可以帮助管理并发计算(和其他控制流任务)。您可以制作一个本机C程序,让节点执行二进制文件,并在完成后回调。我认为有两种方法,下面是一个
child\u process.exec(command,[options],callback)
复制自:
编辑如果启动流程后需要将输入传递给流程,请改用 Node可以很好地处理apache的任务;我使用主机文件和动态页面;我的应用程序逻辑是javascript代码,当对特定路由发出特定HTTP请求时,Express会调用该代码
你可能会使你的机器陷入困境,除非你限制同步计算。我对线程池没有任何知识或评论。可以帮助管理并发计算(和其他控制流任务)。这似乎只适用于独立的可执行文件?我真的需要能够调用函数并传入和返回复杂数据。有没有办法做到这一点?我认为这是可能的,但我没有任何进一步的了解-德国劳埃德船级社!这似乎只适用于独立的可执行文件?我真的需要能够调用函数并传入和返回复杂数据。有没有办法做到这一点?我认为这是可能的,但我没有任何进一步的了解-德国劳埃德船级社!
var childProcess = require('child_process'),
ls;
ls = childProcess.exec('ls -l', function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+error.code);
console.log('Signal received: '+error.signal);
}
console.log('Child Process STDOUT: '+stdout);
console.log('Child Process STDERR: '+stderr);
});
ls.on('exit', function (code) {
console.log('Child process exited with exit code '+code);
});