假设我的电脑有一个带2个内核的cpu,而我的node.js应用程序使用了express。我如何在另一个核心上的1核心和同一个应用程序上运行此应用程序?
答案 0 :(得分:0)
Nicovank
是对的。您对名为cluster
的功能感兴趣。在nodejs中,您可以通过此代码获得核心数量:
const numCPUs = require('os').cpus().length;
请参阅文档的这一部分:https://nodejs.org/dist/latest-v7.x/docs/api/cluster.html#cluster_cluster。有很好的例子。
答案 1 :(得分:0)
以下是使用cluster模块在多个核心中运行的快速服务器的基本示例。
const cluster = require('cluster');
//Get number of CPUs
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork one worker per core.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
//Worker code...
const express = require('express');
const app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
// Bind to a port
app.listen(8080, () => {
console.log(`[PID=${process.pid}] server started!`);
});
}
也有一些第三方模块:
您还可以查看: