X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fpool.ts;h=66815bf90bdab3f2eb8a54baec75147b8aa08341;hb=85b553ba6290bff4b3792921ebba53fb4a8a77fb;hp=d7b6eeabeb074c31103854ec2f9789d137ff8409;hpb=e1ba9765afbf97436250d19f28c818221ebc10b9;p=poolifier.git diff --git a/src/pools/pool.ts b/src/pools/pool.ts index d7b6eeab..66815bf9 100644 --- a/src/pools/pool.ts +++ b/src/pools/pool.ts @@ -2,6 +2,7 @@ import type { ClusterSettings } from 'node:cluster' 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 { WorkerChoiceStrategy, @@ -76,7 +77,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 @@ -136,7 +137,7 @@ export interface TasksQueueOptions { /** * Whether to enable tasks stealing under back pressure. * - * @defaultValue true + * @defaultValue false */ readonly tasksStealingOnBackPressure?: boolean /** @@ -184,7 +185,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 */ @@ -282,7 +283,7 @@ export interface IPool< readonly execute: ( data?: Data, name?: string, - transferList?: TransferListItem[] + transferList?: readonly TransferListItem[] ) => Promise /** * Starts the minimum number of workers in this pool. @@ -321,11 +322,11 @@ export interface IPool< */ readonly removeTaskFunction: (name: string) => Promise /** - * Lists the names of task function available in this pool. + * Lists the properties of task functions available in this pool. * - * @returns The names of task function available in this pool. + * @returns The properties of task functions available in this pool. */ - readonly listTaskFunctionNames: () => string[] + readonly listTaskFunctionsProperties: () => TaskFunctionProperties[] /** * Sets the default task function in this pool. * @@ -334,9 +335,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: ( @@ -347,10 +348,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. *