Я тестирую свое Node-приложение с Node Cluster .
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();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
// Workers can share any TCP connection
// In this case it is an HTTP server
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}
С вышеуказанными кодами моя локальная машина работает нормально, и терминал показывает 8 процессов / кластеров.
Однако, когда я загружаю свои коды на производственный сервер, например: Plesk Onyx.
- cluster.isMaster возвращается как false
- numCPUs возвращаются как 3
Означает ли это, что мой сервер не поддерживает Node Cluster? Или я все еще могу выполнить эту функцию cluster.fork (); ? Могу я узнать, есть ли у меня какое-то решение?
спасибо!