X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=README.md;h=80a082ac1d5207ab79768e23c37cee35a73eb7b9;hb=30369cc0f200d553cfc72fce6e8685c66fa1e344;hp=ff51fdb8eebf1a558c2f8eaecfcf3da06a9693f5;hpb=4f8e444d4f7f3492d7aa09f12ced5a320ab68d30;p=poolifier.git diff --git a/README.md b/README.md index ff51fdb8..80a082ac 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -

Node Thread Pool and Cluster Pool

+

Node.js Worker_Threads and Cluster Worker Pool

@@ -39,11 +39,11 @@ Please consult our [general guidelines](#general-guidelines). - Fixed and dynamic pool size :white_check_mark: - Easy switch from a pool type to another :white_check_mark: - No runtime dependencies :white_check_mark: -- Proper integration with node [async_hooks](https://nodejs.org/api/async_hooks.html) :white_check_mark: -- Support CommonJS, ESM, and TypeScript :white_check_mark: +- Proper integration with Node.js [async_hooks](https://nodejs.org/api/async_hooks.html) :white_check_mark: +- Support for CommonJS, ESM, and TypeScript :white_check_mark: - Support for [worker_threads](https://nodejs.org/api/worker_threads.html) and [cluster](https://nodejs.org/api/cluster.html) Node.js modules :white_check_mark: -- Support multiple task functions :white_check_mark: -- Support sync and async task functions :white_check_mark: +- Support for multiple task functions :white_check_mark: +- Support for sync and async task functions :white_check_mark: - Tasks distribution strategies :white_check_mark: - General guidelines on pool choice :white_check_mark: - Error handling out of the box :white_check_mark: @@ -110,7 +110,7 @@ const { DynamicThreadPool, FixedThreadPool, PoolEvents, availableParallelism } = // a fixed worker_threads pool const pool = new FixedThreadPool(availableParallelism(), './yourWorker.js', { - errorHandler: e => console.error(e), + errorHandler: (e) => console.error(e), onlineHandler: () => console.info('worker is online') }) @@ -119,7 +119,7 @@ pool.emitter.on(PoolEvents.busy, () => console.info('Pool is busy')) // or a dynamic worker_threads pool const pool = new DynamicThreadPool(Math.floor(availableParallelism() / 2), availableParallelism(), './yourWorker.js', { - errorHandler: e => console.error(e), + errorHandler: (e) => console.error(e), onlineHandler: () => console.info('worker is online') }) @@ -131,17 +131,33 @@ pool.emitter.on(PoolEvents.busy, () => console.info('Pool is busy')) // so you can easy switch from one to another pool .execute() - .then(res => { + .then((res) => { console.info(res) }) - .catch(err => { + .catch((err) => { console.error(err) }) ``` You can do the same with the classes _ClusterWorker_, _FixedClusterPool_ and _DynamicClusterPool_. -**See [examples](./examples/) folder for more details (in particular if you want to use a pool with [multiple task functions](./examples/multiFunctionExample.js))**. +**See [examples](./examples/) for more details**: + +- [Javascript](./examples/javascript/) +- [Typescript](./examples/typescript/) + - [HTTP client pool](./examples/typescript/http-client-pool/) + - [SMTP client pool](./examples/typescript/smtp-client-pool/) + - [HTTP server pool](./examples/typescript/http-server-pool/) + - [Express worker_threads pool](./examples/typescript/http-server-pool/express-worker_threads/) + - [Express cluster pool](./examples/typescript/http-server-pool/express-cluster/) + - [Express hybrid pool](./examples/typescript/http-server-pool/express-hybrid/) + - [Fastify worker_threads pool](./examples/typescript/http-server-pool/fastify-worker_threads/) + - [Fastify cluster pool](./examples/typescript/http-server-pool/fastify-cluster/) + - [Fastify hybrid pool](./examples/typescript/http-server-pool/fastify-hybrid/) + - [WebSocket server pool](./examples/typescript/websocket-server-pool/) + - [ws worker_threads pool](./examples/typescript/websocket-server-pool/ws-worker_threads/) + - [ws cluster pool](./examples/typescript/websocket-server-pool/ws-cluster/) + - [ws hybrid pool](./examples/typescript/websocket-server-pool/ws-hybrid/) Remember that workers can only send and receive structured-cloneable data.