*/
export const KillBehaviors = Object.freeze({
/**
- * If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still running, then the worker **wont** be deleted.
+ * If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **wont** be deleted.
*/
SOFT: 'SOFT',
/**
- * If `lastActiveTime` is greater than `maxInactiveTime` but a task is still running, then the worker will be deleted.
+ * If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted.
*/
HARD: 'HARD'
} as const)
/**
* Detects whether the given value is a kill behavior or not.
*
- * @template KB Which specific KillBehavior to test against.
- * @param killBehavior Which kind of kill behavior to detect.
- * @param value Any value.
+ * @typeParam KB - Which specific KillBehavior type to test against.
+ * @param killBehavior - Which kind of kill behavior to detect.
+ * @param value - Any value.
* @returns `true` if `value` was strictly equals to `killBehavior`, otherwise `false`.
*/
-export function isKillBehavior<KB extends KillBehavior> (
+export const isKillBehavior = <KB extends KillBehavior>(
killBehavior: KB,
value: unknown
-): value is KB {
+): value is KB => {
return value === killBehavior
}
* 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 60.000 ms
+ * @defaultValue 60000
*/
maxInactiveTime?: number
/**
* Whether your worker will perform asynchronous or not.
*
- * @default false
+ * @defaultValue false
+ * @deprecated This option will be removed in the next major version.
*/
async?: boolean
/**
* `killBehavior` dictates if your async unit (worker/process) will be deleted in case that a task is active on it.
*
- * - SOFT: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still running, then the worker **wont** be deleted.
- * - HARD: If `lastActiveTime` is greater than `maxInactiveTime` but a task is still running, then the worker will be deleted.
+ * - 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.
*
- * @default KillBehaviors.SOFT
+ * @defaultValue KillBehaviors.SOFT
*/
killBehavior?: KillBehavior
}