- - `concurrency` (optional) - The maximum number of tasks that can be executed concurrently on a worker.
-
- Default: `{ concurrency: 1 }`
-
-### `pool = new DynamicThreadPool/DynamicClusterPool(min, max, filePath, opts)`
-
-`min` (mandatory) Same as FixedThreadPool/FixedClusterPool numberOfThreads/numberOfWorkers, this number of workers will be always active
-`max` (mandatory) Max number of workers that this pool can contain, the new created workers will die after a threshold (default is 1 minute, you can override it in your worker implementation).
-`filePath` (mandatory) Same as FixedThreadPool/FixedClusterPool
-`opts` (optional) Same as FixedThreadPool/FixedClusterPool
-
-### `pool.execute(data)`
-
-`data` (optional) An object that you want to pass to your worker implementation
-This method is available on both pool implementations and returns a promise.
-
-### `pool.destroy()`
-
-Destroy method is available on both pool implementations.
-This method will call the terminate method on each worker.
-
-### `class YourWorker extends ThreadWorker/ClusterWorker`
-
-`taskFunctions` (mandatory) The task function(s) that you want to execute on the worker
-`opts` (optional) An object with these properties:
-
-- `maxInactiveTime` (optional) - Max time to wait tasks to work on in milliseconds, after this period the new worker will die.
- The last active time of your worker unit will be updated when a task is submitted to a worker or when a worker terminate a task.
- If `killBehavior` is set to `KillBehaviors.HARD` this value represents also the timeout for the tasks that you submit to the pool, when this timeout expires your tasks is interrupted and the worker is killed if is not part of the minimum size of the pool.
- 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.
- This option only apply to the newly created workers.
- Default: `KillBehaviors.SOFT`
-
-## General guidance
-
-Performance is one of the main target of these worker pool implementations, we want to have a strong focus on this.
-We already have a bench folder where you can find some comparisons.
-
-### Internal Node.js thread pool
-
-Before to jump into each poolifier pool type, let highlight that **Node.js comes with a thread pool already**, the libuv thread pool where some particular tasks already run by default.
-Please take a look at [which tasks run on the libuv thread pool](https://nodejs.org/en/docs/guides/dont-block-the-event-loop/#what-code-runs-on-the-worker-pool).
-
-**If your task runs on libuv thread pool**, you can try to:
-
-- Tune the libuv thread pool size setting the [UV_THREADPOOL_SIZE](https://nodejs.org/api/cli.html#cli_uv_threadpool_size_size).
-
-and/or
-
-- Use poolifier cluster pool that spawning child processes will also increase the number of libuv threads since that any new child process comes with a separated libuv thread pool. **More threads does not mean more fast, so please tune your application**.
-
-### Cluster vs Threads worker pools
-
-**If your task does not run into libuv thread pool** and is CPU intensive then poolifier **thread pools** (FixedThreadPool and DynamicThreadPool) are suggested to run CPU intensive tasks, you can still run I/O intensive tasks into thread pools, but performance enhancement is expected to be minimal.
-Thread pools are built on top of Node.js [worker-threads](https://nodejs.org/api/worker_threads.html#worker_threads_worker_threads) module.