Please consult our [general guidelines](#general-guidelines).
- Easy to use :white_check_mark:
-- Performance [benchmarks](./benchmarks/README.md) :white_check_mark:
- Fixed and dynamic pool size :white_check_mark:
- Easy switch from a pool type to another :white_check_mark:
+- Performance [benchmarks](./benchmarks/README.md) :white_check_mark:
- No runtime dependencies :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 multiple task functions :white_check_mark:
- Support for sync and async task functions :white_check_mark:
- Tasks distribution strategies :white_check_mark:
+- Lockless tasks queueing :white_check_mark:
+- Queued tasks rescheduling:
+ - Task stealing :white_check_mark:
+ - Tasks stealing under back pressure :white_check_mark:
+ - Tasks redistribution on worker error :white_check_mark:
- General guidelines on pool choice :white_check_mark:
- Error handling out of the box :white_check_mark:
- Widely tested :white_check_mark:
pool.emitter.on(PoolEvents.busy, () => console.info('Pool is busy'))
// the execute method signature is the same for both implementations,
-// so you can easy switch from one to another
+// so you can easily switch from one to another
pool
.execute()
.then((res) => {
- [**Alessandro Pio Ardizio**](https://github.com/pioardi)
-**_Contributors_**
+**Maintainers:**
-- [**Shinigami92**](https://github.com/Shinigami92)
- [**Jérôme Benoit**](https://github.com/jerome-benoit)
+**Contributors:**
+
+- [**Shinigami92**](https://github.com/Shinigami92)
+
## License
[MIT](./LICENSE)