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`);
}