- Performance :racehorse: [benchmarks](./benchmarks/README.md)
- Security :bank: :cop: [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=pioardi_poolifier&metric=security_rating)](https://sonarcloud.io/dashboard?id=pioardi_poolifier) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=pioardi_poolifier&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=pioardi_poolifier)
- Easy to use :couple:
-- Easy switch from a pool to another, easy to tune :white_check_mark:
- Dynamic pool size :white_check_mark:
+- Easy switch from a pool to another :white_check_mark:
- No runtime dependencies :white_check_mark:
- Proper async integration with node async hooks :white_check_mark:
- Support for worker threads and cluster node modules :white_check_mark:
## Node versions
-Node versions >= 16.x are supported.
+Node versions >= 16.14.x are supported.
## [API](https://poolifier.github.io/poolifier/)
If `killBehavior` is set to `KillBehaviors.SOFT` your tasks have no timeout and your workers will not be terminated until your task is completed.
Default: 60000
-- `async` (optional) - true/false. Set to true if your function contains async code pieces, else false.
- Default: false
- `killBehavior` (optional) - Dictates if your async unit (worker/process) will be deleted in case that a task is active on it.
**KillBehaviors.SOFT**: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still running, then the worker **won't** be deleted.
**KillBehaviors.HARD**: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still running, then the worker will be deleted.