X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fselection-strategies-types.ts;h=1a8ea298198d842bd8cd622f74abb6a30f7b28fc;hb=3d84cdaec91dfe96a82462c902bead4067b452d2;hp=59b6a84f90e29dbd05a08dec2020428b7e2fe436;hpb=26ce26ca8861318068427cc86697103e7a3ddbf4;p=poolifier.git diff --git a/src/pools/selection-strategies/selection-strategies-types.ts b/src/pools/selection-strategies/selection-strategies-types.ts index 59b6a84f..1a8ea298 100644 --- a/src/pools/selection-strategies/selection-strategies-types.ts +++ b/src/pools/selection-strategies/selection-strategies-types.ts @@ -1,7 +1,15 @@ /** * Enumeration of worker choice strategies. */ -export const WorkerChoiceStrategies = Object.freeze({ +export const WorkerChoiceStrategies: Readonly<{ + ROUND_ROBIN: 'ROUND_ROBIN' + LEAST_USED: 'LEAST_USED' + LEAST_BUSY: 'LEAST_BUSY' + LEAST_ELU: 'LEAST_ELU' + FAIR_SHARE: 'FAIR_SHARE' + WEIGHTED_ROUND_ROBIN: 'WEIGHTED_ROUND_ROBIN' + INTERLEAVED_WEIGHTED_ROUND_ROBIN: 'INTERLEAVED_WEIGHTED_ROUND_ROBIN' +}> = Object.freeze({ /** * Round robin worker selection strategy. */ @@ -42,7 +50,11 @@ export type WorkerChoiceStrategy = keyof typeof WorkerChoiceStrategies /** * Enumeration of measurements. */ -export const Measurements = Object.freeze({ +export const Measurements: Readonly<{ + runTime: 'runTime' + waitTime: 'waitTime' + elu: 'elu' +}> = Object.freeze({ runTime: 'runTime', waitTime: 'waitTime', elu: 'elu' @@ -95,22 +107,7 @@ export interface WorkerChoiceStrategyOptions { * * @defaultValue Weights computed automatically given the CPU performance. */ - readonly weights?: Record -} - -/** - * Worker choice strategy internal options. - * - * @internal - */ -export interface InternalWorkerChoiceStrategyOptions - extends WorkerChoiceStrategyOptions { - /** - * Number of worker choice retries to perform if no worker is eligible. - * - * @defaultValue pool maximum size - */ - readonly retries?: number + weights?: Record } /** @@ -216,11 +213,5 @@ export interface IWorkerChoiceStrategy { * * @param opts - The worker choice strategy options. */ - readonly setOptions: (opts: WorkerChoiceStrategyOptions) => void - /** - * Whether the pool has worker nodes ready or not. - * - * @returns Whether the pool has worker nodes ready or not. - */ - readonly hasPoolWorkerNodesReady: () => boolean + readonly setOptions: (opts: WorkerChoiceStrategyOptions | undefined) => void }