X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fpool.ts;h=67409eea7afd3984e07ac2b15fa351fab1143244;hb=f57ca5d5136bb599299420ad483e00e1344eca1d;hp=9eec76b944ede9fc05af08b552689f534f6a40bb;hpb=31847469b406e46688d8aafb880e250706dd8aee;p=poolifier.git diff --git a/src/pools/pool.ts b/src/pools/pool.ts index 9eec76b9..67409eea 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 @@ -77,7 +80,7 @@ export interface PoolInfo { readonly worker: WorkerType readonly started: boolean readonly ready: boolean - readonly strategy: WorkerChoiceStrategy + readonly defaultStrategy: WorkerChoiceStrategy readonly strategyRetries: number readonly minSize: number readonly maxSize: number @@ -137,7 +140,7 @@ export interface TasksQueueOptions { /** * Whether to enable tasks stealing under back pressure. * - * @defaultValue true + * @defaultValue false */ readonly tasksStealingOnBackPressure?: boolean /** @@ -185,7 +188,7 @@ export interface PoolOptions { */ startWorkers?: boolean /** - * The worker choice strategy to use in this pool. + * The default worker choice strategy to use in this pool. * * @defaultValue WorkerChoiceStrategies.ROUND_ROBIN */ @@ -308,11 +311,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. @@ -335,9 +338,9 @@ export interface IPool< */ readonly setDefaultTaskFunction: (name: string) => Promise /** - * Sets the worker choice strategy in this pool. + * Sets the default worker choice strategy in this pool. * - * @param workerChoiceStrategy - The worker choice strategy. + * @param workerChoiceStrategy - The default worker choice strategy. * @param workerChoiceStrategyOptions - The worker choice strategy options. */ readonly setWorkerChoiceStrategy: ( @@ -348,10 +351,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. *