Nuptial Predicament Mediation
Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

thread-pool-node

1.0.8 • Public • Published

Thread Pool

npm version Build Status

A Thread pool for nodejs worker-threads. It relies on the generic-pool library to handle the resource management.

Install

npm install thread-pool-node

or with yarn:

yarn add thread-pool-node

Usage Example

// index.js
const createPool = require('thread-pool-node')
 
const pool = createPool({
  workerPath: './path/to/worker.js',
  workerOptions: {
    workerData: {
      magicNumber: 42
    }
  },
  poolOptions: { // passed to generic-pool
    min: 2,
    max: 4
  }
})
 
const worker = await pool.acquire();
const onMessage = result => {
  // do something with the result
  console.log({ result });
 
  // release back to thread pool
  pool.release(worker);
  worker.removeListener("message", onMessage);
};
 
worker.on("message", onMessage);
worker.postMessage(args);
// worker.js
const { parentPort, workerData } = require("worker_threads");
 
parentPort.on("message", message => {
  parentPort.postMessage(aCPUBoundTask(workerData.magicNumber))
});

Pool Basic API

  • createPool: Creates a new worker-threads pool according to the given pool options
  • async Pool#acquire - Returns a new ready to be used worker from the pool.
  • async Pool#release - Releases the worker back to the pool.

For info on how to configure the pool to meet your needs, and more useful pool APIs, see generic-pool

Install

npm i thread-pool-node

DownloadsWeekly Downloads

53

Version

1.0.8

License

ISC

Unpacked Size

4.1 kB

Total Files

4

Last publish

Collaborators

  • avatar