Node.js: 複数 CPU コアでコードを実行する
このドキュメントははじめにガイドの一部です。完全なガイドはこちらからご覧いただけます:Stackhero で Node.js サービスを迅速かつ安全にデプロイする方法。
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供するNode.jsクラウドソリューションを提供しています。主な利点は以下の通りです:
- シンプルな
git pushで数秒でアプリケーションをデプロイ。- 独自のドメイン名を使用し、HTTPS証明書の自動設定による強化されたセキュリティを享受。
- 自動バックアップ、ワンクリックアップデート、そしてシンプルで透明性があり、予測可能な価格設定で安心を提供。
- プライベートで専用のVMによる最適なパフォーマンスと強固なセキュリティを実現。
時間を節約し、生活を簡素化:StackheroのNode.jsクラウドホスティングソリューションを試すのに5分しかかかりません!
デフォルトでは、Node.js は 1 コア・1 スレッドのみを使用します。すべての CPU コアを活用したい場合は、Node.js の cluster API をご利用ください。公式ドキュメントはこちら:https://nodejs.org/api/cluster.html
以下は、利用可能なすべての CPU で HTTP サーバーを起動するシンプルな例です:
const cluster = require('cluster');
const http = require('http');
const cpusCount = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// ワーカーをフォーク
for (let i = 0; i < cpusCount; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
});
} else {
// ワーカーは TCP 接続(ここでは HTTP サーバー)を共有します
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}