Easily manage a pool of Node.js Worker Threads.
npm install worker-threads-pool --save
Worker Threads in Node.js are still an experimental feature and is only
supported in Node.js v10.5.0 and above. To use Worker Threads, you need
to run node
with the --experimental-worker
flag:
node --experimental-worker app.js
const Pool = require('worker-threads-pool')
const pool = new Pool({max: 5})
for (let i = 0; i < 100; i++) {
pool.acquire('/my/worker.js', {}, function (worker) {
console.log(`started worker ${i} (pool size: ${pool.size})`)
worker.on('exit', function () {
console.log(`worker ${i} exited (pool size: ${pool.size})`)
})
})
}
options
is an optional object/dictionary with the any of the following properties:
max
- Maximum number of workers allowed in the pool. Other workers will be queued and started once there's room in the pool (default:1
)
Number of active workers in the pool.
The filename
and options
arguments are passed directly to new Worker(filename, options)
.
The callback
argument will be called with the worker once it's
created.
Calls
worker.terminate()
on all workers in the pool.
Will call the optional callback
once all workers have terminated.
MIT