Skip to content

SerayaEryn/worker-thread-pool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

worker-thread-pool

Build Status Coverage Status JavaScript Style Guide NPM version

An easy way to create a pool of worker threads.

Usage

If being used with node v10.5.0 to v11.6.0 the worker-thread-pool module requires node to be started with the --experimental-worker flag.

//main.js
const Pool = require('worker-thread-pool');

const pool = new Pool({
  path: __dirname + '/worker.js'
});
pool.run({name: 'world'})
  .then((result) => {
    //...
  })
//worker.js
const { parentPort } = require('worker_threads');

parentPort.on('message', (message) => {
  message.port.postMessage('hello ' + message.name);
  message.port.close();
});

API

Pool(options)

Creates a new pool with workers for the specified javascript file.

options

path

The path to the javascript file containing the source code to be executed in the thread pool.

size (optional)

The size of the thread pool. Defaults to 4.

Pool#run(workerData)

Passes the workerData to the worker and waits until the worker sends back an answer. Resolves the answer of the worker in a Promise.

Poll#queueLength()

Returns the current length of the queue.

Poll#poolLength()

Returns the current size of the pool.

Pool#close()

Removes all workers from the pool, calls terminate on them and then emits a close event�. If an error occurs during an error event will be emitted.

License

MIT

About

An easy way to create a pool of worker threads.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published