Module de processus de cluster Node.js
Exemple
Exécutez le code trois fois, la première fois en tant que maître, puis en tant que travailleurs :
var cluster = require('cluster');
if (cluster.isWorker) {
console.log('I am a worker');
} else {
console.log('I am a
master');
cluster.fork();
cluster.fork();
}
Définition et utilisation
Le module cluster permet de créer des processus enfants qui s'exécutent simultanément et partagent le même port de serveur.
Node.js exécute une programmation à thread unique, ce qui est très économe en mémoire, mais pour tirer parti des systèmes multicœurs des ordinateurs, le module Cluster vous permet de créer facilement des processus enfants qui s'exécutent chacun sur leur propre thread unique, pour gérer la charge.
Syntaxe
La syntaxe pour inclure le module cluster dans votre application :
var cluster = require('cluster');
Propriétés et méthodes de cluster
Method | Description |
---|---|
disconnect() | Disconnects all workers |
exitedAfterDisconnect | Returns true if a worker was exited after disconnect, or the kill method |
fork() | Creates a new worker, from a master |
id | A unique id for a worker |
isConnected | Returns true if the worker is connected to its master, otherwise false |
isDead | Returns true if the worker's process is dead, otherwise false |
isMaster | Returns true if the current process is master, otherwise false |
isWorker | Returns true if the current process is worker, otherwise false |
kill() | Kills the current worker |
process | Returns the global Child Process |
schedulingPolicy | Sets or gets the schedulingPolicy |
send() | sends a message to a master or a worker |
settings | Returns an object containing the cluster's settings |
setupMaster() | Changes the settings of a cluster |
worker | Returns the current worker object |
workers | Returns all workers of a master |