From: Jérôme Benoit Date: Tue, 15 Aug 2023 21:22:54 +0000 (+0200) Subject: Merge branch 'master' of github.com:poolifier/poolifier X-Git-Tag: v2.6.28~19 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=d8e6bb3c5f8adc1797760260a1a22c228f76e984;hp=a13e50c30dd0e0714ace0e1ea4ea1b36cdd18ab7;p=poolifier.git Merge branch 'master' of github.com:poolifier/poolifier --- diff --git a/docs/api.md b/docs/api.md index 1b3e3969..3a62d763 100644 --- a/docs/api.md +++ b/docs/api.md @@ -113,17 +113,20 @@ An object with these properties: `taskFunctions` (mandatory) The task function or task functions object `{ name_1: fn_1, ..., name_n: fn_n }` that you want to execute on the worker `opts` (optional) An object with these properties: +- `killBehavior` (optional) - Dictates if your worker will be deleted in case a task is active on it. + **KillBehaviors.SOFT**: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted. + **KillBehaviors.HARD**: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted. + This option only apply to the newly created workers. + Default: `KillBehaviors.SOFT` + - `maxInactiveTime` (optional) - Maximum waiting time in milliseconds for tasks on newly created workers. After this time newly created workers will die. The last active time of your worker will be updated when it terminates 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 before completion and removed. 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` -- `killBehavior` (optional) - Dictates if your worker will be deleted in case a task is active on it. - **KillBehaviors.SOFT**: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted. - **KillBehaviors.HARD**: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted. - This option only apply to the newly created workers. - Default: `KillBehaviors.SOFT` +- `killHandler` (optional) - A function that will be called when a worker is killed. + Default: `() => {}` #### `YourWorker.hasTaskFunction(name)` diff --git a/src/worker/worker-options.ts b/src/worker/worker-options.ts index f829dcb3..384b2a11 100644 --- a/src/worker/worker-options.ts +++ b/src/worker/worker-options.ts @@ -26,6 +26,17 @@ export type KillHandler = () => void | Promise * Options for workers. */ export interface WorkerOptions { + /** + * `killBehavior` dictates if your worker will be deleted in case a task is active on it. + * + * - SOFT: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted. + * - HARD: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted. + * + * This option only apply to the newly created workers. + * + * @defaultValue KillBehaviors.SOFT + */ + killBehavior?: KillBehavior /** * Maximum waiting time in milliseconds for tasks on newly created workers. * @@ -39,6 +50,10 @@ export interface WorkerOptions { * @defaultValue 60000 */ maxInactiveTime?: number + /** + * The function to call when a worker is killed. + */ + killHandler?: KillHandler /** * Whether your worker will perform asynchronous or not. * @@ -46,19 +61,4 @@ export interface WorkerOptions { * @deprecated This option will be removed in the next major version. */ async?: boolean - /** - * `killBehavior` dictates if your worker will be deleted in case a task is active on it. - * - * - SOFT: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted. - * - HARD: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted. - * - * This option only apply to the newly created workers. - * - * @defaultValue KillBehaviors.SOFT - */ - killBehavior?: KillBehavior - /** - * The function to call when a worker is killed. - */ - killHandler?: KillHandler }