Модуль кластерного процесса Node.js
Пример
Запустите код три раза, первый раз как мастер, затем как рабочие:
var cluster = require('cluster');
if (cluster.isWorker) {
console.log('I am a worker');
} else {
console.log('I am a
master');
cluster.fork();
cluster.fork();
}
Определение и использование
Модуль кластера позволяет создавать дочерние процессы, которые выполняются одновременно и используют один и тот же порт сервера.
Node.js запускает однопоточное программирование, что очень эффективно использует память, но чтобы использовать преимущества многоядерных систем компьютеров, модуль кластера позволяет легко создавать дочерние процессы, каждый из которых выполняется в своем отдельном потоке, для обработки нагрузки.
Синтаксис
Синтаксис для включения модуля кластера в ваше приложение:
var cluster = require('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 |