From 1a4ec243b3f821df34fb9ab8235066f17cc0991b Mon Sep 17 00:00:00 2001 From: Alessandro Pio Ardizio Date: Mon, 20 Jan 2020 09:35:59 +0100 Subject: [PATCH] Update README.MD First readme version --- README.MD | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/README.MD b/README.MD index d7b5bd32..a7b1bbee 100644 --- a/README.MD +++ b/README.MD @@ -3,7 +3,66 @@ [![Dependabot](https://badgen.net/dependabot/dependabot/dependabot-core/?icon=dependabot)](https://badgen.net/dependabot/dependabot/dependabot-core/?icon=dependabot) [![Actions Status](https://github.com/pioardi/node-pool/workflows/NodeCI/badge.svg)](https://github.com/pioardi/node-pool/actions) -Node pool contains two worker-threads pool implementations.
+Node pool contains two worker-threads pool implementations , you don' t have to deal with worker-threads complexity.
The first implementation is a static thread pool , with a defined number of threads that are started at creation time .
The second implementation is a dynamic thread pool with a number of threads started at creation time and other threads created when the load will increase ( with an upper limit ).
+## Installation +``` +npm install node-pool --save +``` +# Usage + +You can implement a worker in a simple way , extending the class ThreadWorker : + +```js +'use strict' +const { ThreadWorker } = require('node-pool') + +class MyWorker extends ThreadWorker { + constructor () { + super((data) => { + // this will be executed in the worker thread, the data will be received by using the execute method + return { ok: 1 } + }) + } +} +module.exports = new MyWorker() +``` + +Instantiate your pool based on your needed : + +```js +'use strict' +const { FixedThreadPool } = require('node-pool') + +// a fixed thread pool +const pool = new FixedThreadPool(15, + './yourWorker.js') + +// or a dynamic thread pool +const pool = new DynamicThreadPool(10, 100, + './yourWorker.js') +pool.emitter.on('FullPool', () => console.log('Pool is full')) + +// the execute method signature is the same for both implementations, +// so you can easy switch from one to another +pool.execute({}).then(res => { + console.log(res) +}).catch .... + +``` + + See examples folder for more details. + +## Node versions +You can use node version 10.x with --experimental-worker flag, or you can use 12.x version
+ +## API + +TODO + +## License + +[MIT](https://github.com/pioardi/node-pool/blob/master/LICENSE) + -- 2.34.1