X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=README.MD;h=1e661a2de4636df54c5d43100d82721e896183ba;hb=ab1526e9c626684f6695f13e4dbb8ed3ab835ac7;hp=b57d650f5c6b190cec920834f6f7b43c85f08fb5;hpb=103df814ebcb0f8add7411aec259c76e68545690;p=poolifier.git diff --git a/README.MD b/README.MD index b57d650f..1e661a2d 100644 --- a/README.MD +++ b/README.MD @@ -1,10 +1,68 @@ # Node Pool :arrow_double_up: :on: [![JavaScript Style Guide](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://github.com/standard/standard) [![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) -https://badgen.net/dependabot/dependabot/dependabot-core/?icon=dependabot - -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 an higher version (i.e 12.x)
+ +## API + +TODO + +## License + +[MIT](https://github.com/pioardi/node-pool/blob/master/LICENSE) +