X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=src%2Fpools%2Fpool.ts;h=a025f3ced9568eb872957b98d060ce66ef27ad10;hb=b3b1857ba11fd35d0f7118ef8046c38676473a15;hp=82f3d8d91f05fd4f921a7feb17a901a44e84f966;hpb=bcfb06ce041a682baf396a099c633a848d6a4045;p=poolifier.git diff --git a/src/pools/pool.ts b/src/pools/pool.ts index 82f3d8d9..a025f3ce 100644 --- a/src/pools/pool.ts +++ b/src/pools/pool.ts @@ -3,7 +3,10 @@ import type { EventEmitterAsyncResource } from 'node:events' import type { TransferListItem, WorkerOptions } from 'node:worker_threads' import type { TaskFunctionProperties } from '../utility-types.js' -import type { TaskFunction } from '../worker/task-functions.js' +import type { + TaskFunction, + TaskFunctionObject +} from '../worker/task-functions.js' import type { WorkerChoiceStrategy, WorkerChoiceStrategyOptions @@ -110,6 +113,24 @@ export interface PoolInfo { readonly average?: number readonly median?: number } + readonly elu?: { + idle: { + readonly minimum: number + readonly maximum: number + readonly average?: number + readonly median?: number + } + active: { + readonly minimum: number + readonly maximum: number + readonly average?: number + readonly median?: number + } + utilization: { + readonly average?: number + readonly median?: number + } + } } /** @@ -137,7 +158,7 @@ export interface TasksQueueOptions { /** * Whether to enable tasks stealing under back pressure. * - * @defaultValue true + * @defaultValue false */ readonly tasksStealingOnBackPressure?: boolean /** @@ -308,11 +329,11 @@ export interface IPool< * @param fn - The task function. * @returns `true` if the task function was added, `false` otherwise. * @throws {@link https://nodejs.org/api/errors.html#class-typeerror} If the `name` parameter is not a string or an empty string. - * @throws {@link https://nodejs.org/api/errors.html#class-typeerror} If the `fn` parameter is not a function. + * @throws {@link https://nodejs.org/api/errors.html#class-typeerror} If the `fn` parameter is not a function or task function object. */ readonly addTaskFunction: ( name: string, - fn: TaskFunction + fn: TaskFunction | TaskFunctionObject ) => Promise /** * Removes a task function from this pool. @@ -348,10 +369,11 @@ export interface IPool< * Sets the worker choice strategy options in this pool. * * @param workerChoiceStrategyOptions - The worker choice strategy options. + * @returns `true` if the worker choice strategy options were set, `false` otherwise. */ readonly setWorkerChoiceStrategyOptions: ( workerChoiceStrategyOptions: WorkerChoiceStrategyOptions - ) => void + ) => boolean /** * Enables/disables the worker node tasks queue in this pool. *