Nodejs 集群分叉无法在 Windows 上工作;如何启用循环调度?
Nodejs cluster forking not working on Windows; how do you enable the round-robin scheduling?
有人问过类似的问题,关于为什么 nodejs 集群分叉只委托给 windows 机器上的一个工作人员。我们知道答案是 windows 上禁用了 RR 算法,但是那么如何启用它呢?
我有个提示:
1)
The Docs say”
cluster.schedulingPolicy 也可以通过 NODE_CLUSTER_SCHED_POLICY 环境变量设置。有效值为 'rr' 和 'none' "
我想知道我到底在哪里进行这个配置。
代码:
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
// Workers sharing same TCP connection
http.createServer((req, res) => {
console.log(`worker ${process.pid} working`);
res.writeHead(200);
res.end('hello world\n');
}).listen(2019);
console.log(`Worker ${process.pid} started`);
}
非常感谢任何相关的帮助、指导或评论!
感谢社区!
好的,它就在我眼前,但我不知道该怎么做。
我添加了这行代码,现在当我 运行 它并对其进行负载测试时,我可以看到正确的委托。
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
cluster.schedulingPolicy = cluster.SCHED_RR;
...
有人问过类似的问题,关于为什么 nodejs 集群分叉只委托给 windows 机器上的一个工作人员。我们知道答案是 windows 上禁用了 RR 算法,但是那么如何启用它呢?
我有个提示:
1)
The Docs say” cluster.schedulingPolicy 也可以通过 NODE_CLUSTER_SCHED_POLICY 环境变量设置。有效值为 'rr' 和 'none' "
我想知道我到底在哪里进行这个配置。 代码:
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
// Workers sharing same TCP connection
http.createServer((req, res) => {
console.log(`worker ${process.pid} working`);
res.writeHead(200);
res.end('hello world\n');
}).listen(2019);
console.log(`Worker ${process.pid} started`);
}
非常感谢任何相关的帮助、指导或评论!
感谢社区!
好的,它就在我眼前,但我不知道该怎么做。
我添加了这行代码,现在当我 运行 它并对其进行负载测试时,我可以看到正确的委托。
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
cluster.schedulingPolicy = cluster.SCHED_RR;
...