fix: sort round weights descending in IWRR
[poolifier.git] / docs / api.md
index 8e9d59cd68eef55bd06076e6e3f9f78e62425c13..2b917c46c362157b7616771d2eab174f7dfa9463 100644 (file)
@@ -8,7 +8,11 @@
   - [`pool.execute(data, name, transferList)`](#poolexecutedata-name-transferlist)
   - [`pool.start()`](#poolstart)
   - [`pool.destroy()`](#pooldestroy)
+  - [`pool.hasTaskFunction(name)`](#poolhastaskfunctionname)
+  - [`pool.addTaskFunction(name, fn)`](#pooladdtaskfunctionname-fn)
+  - [`pool.removeTaskFunction(name)`](#poolremovetaskfunctionname)
   - [`pool.listTaskFunctionNames()`](#poollisttaskfunctionnames)
+  - [`pool.setDefaultTaskFunction(name)`](#poolsetdefaulttaskfunctionname)
   - [`PoolOptions`](#pooloptions)
     - [`ThreadPoolOptions extends PoolOptions`](#threadpooloptions-extends-pooloptions)
     - [`ClusterPoolOptions extends PoolOptions`](#clusterpooloptions-extends-pooloptions)
@@ -37,7 +41,7 @@
 
 ### `pool.execute(data, name, transferList)`
 
-`data` (optional) An object that you want to pass to your worker implementation.  
+`data` (optional) An object that you want to pass to your worker task function implementation.  
 `name` (optional) A string with the task function name that you want to execute on the worker. Default: `'default'`  
 `transferList` (optional) An array of transferable objects that you want to transfer to your [worker_threads](https://nodejs.org/api/worker_threads.html) worker implementation.
 
@@ -57,10 +61,29 @@ This method is available on both pool implementations and will call the terminat
 
 This method is available on both pool implementations and returns a boolean.
 
+### `pool.addTaskFunction(name, fn)`
+
+`name` (mandatory) The task function name.
+`fn` (mandatory) The task function.
+
+This method is available on both pool implementations and returns a boolean promise.
+
+### `pool.removeTaskFunction(name)`
+
+`name` (mandatory) The task function name.
+
+This method is available on both pool implementations and returns a boolean promise.
+
 ### `pool.listTaskFunctionNames()`
 
 This method is available on both pool implementations and returns an array of the task function names.
 
+### `pool.setDefaultTaskFunction(name)`
+
+`name` (mandatory) The task function name.
+
+This method is available on both pool implementations and returns a boolean promise.
+
 ### `PoolOptions`
 
 An object with these properties:
@@ -99,11 +122,11 @@ An object with these properties:
 
   Default: `{ retries: 6, runTime: { median: false }, waitTime: { median: false }, elu: { median: false } }`
 
-- `startWorkers` (optional) - Start the minimum number of workers at pool creation.  
+- `startWorkers` (optional) - Start the minimum number of workers at pool initialization.  
   Default: `true`
 - `restartWorkerOnError` (optional) - Restart worker on uncaught error in this pool.  
   Default: `true`
-- `enableEvents` (optional) - Events emission enablement in this pool.  
+- `enableEvents` (optional) - Events integrated with async resource emission enablement in this pool.  
   Default: `true`
 - `enableTasksQueue` (optional) - Tasks queue per worker enablement in this pool.  
   Default: `false`
@@ -113,8 +136,8 @@ An object with these properties:
 
   - `size` (optional) - The maximum number of tasks that can be queued on a worker before flagging it as back pressured. It must be a positive integer.
   - `concurrency` (optional) - The maximum number of tasks that can be executed concurrently on a worker. It must be a positive integer.
-  - `taskStealing` (optional) - Task stealing enablement.
-  - `tasksStealingOnBackPressure` (optional) - Tasks stealing enablement on back pressure.
+  - `taskStealing` (optional) - Task stealing enablement on empty queue.
+  - `tasksStealingOnBackPressure` (optional) - Tasks stealing enablement under back pressure.
 
   Default: `{ size: (pool maximum size)^2, concurrency: 1, taskStealing: true, tasksStealingOnBackPressure: true }`