egg-worker-thread

1.0.2 • Public • Published

egg-worker-thread

NPM version Known Vulnerabilities npm download

More convenient to use worker thread for egg, using the tarn.js maintain thread pool

Install

$ npm i egg-worker-thread --save

Usage

// {app_root}/config/plugin.js
exports.workerThread = {
  enable: true,
  package: 'egg-worker-thread',
};

Configuration

reference tarn.js config

// {app_root}/config/config.default.js
exports.workerThread = {
  min: 0,
  max: 5,
  // acquire promises are rejected after this many milliseconds
  // if a resource cannot be acquired
  acquireTimeoutMillis: 30000,

  // create operations are cancelled after this many milliseconds
  // if a resource cannot be acquired
  createTimeoutMillis: 30000,

  // destroy operations are awaited for at most this many milliseconds
  // new resources will be created after this timeout
  destroyTimeoutMillis: 5000,

  // free resouces are destroyed after this many milliseconds
  idleTimeoutMillis: 30000,

  // how often to check for idle resources to destroy
  reapIntervalMillis: 1000,

  // how long to idle after failed create before trying again
  createRetryIntervalMillis: 200,

  // If true, when a create fails, the first pending acquire is
  // rejected with the error. If this is false (the default) then
  // create is retried until acquireTimeoutMillis milliseconds has
  // passed.
  propagateCreateError: false,
};

see config/config.default.js for more detail.

Example

Attention: The scope of the method is isolated for package and variable

const _ = require('lodash')
const data = 1;

// The parameter need to be object for more arguments
async function test({ param1, param2 }) {
  const _ = require('lodash') // require again
  console.error(data); // undefined

  return data;
}

await app.workerThread.createWorkerThread(test,{ param1, param2 })

License

MIT

Package Sidebar

Install

npm i egg-worker-thread

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

9.46 kB

Total Files

7

Last publish

Collaborators

  • wmtcore