X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fselection-strategies-utils.ts;h=10c93335ea98cd1c3b019addb88603ed2749672e;hb=d0a3f018e1bcd5acdd56bb1b566d90b97e4f13c7;hp=75848544a295b221bad52c91a17f47fa3f4186a9;hpb=737c6d97f8089996a9e30f77104d58afcf5791ba;p=poolifier.git diff --git a/src/pools/selection-strategies/selection-strategies-utils.ts b/src/pools/selection-strategies/selection-strategies-utils.ts index 75848544..10c93335 100644 --- a/src/pools/selection-strategies/selection-strategies-utils.ts +++ b/src/pools/selection-strategies/selection-strategies-utils.ts @@ -1,6 +1,7 @@ import type { IPoolInternal } from '../pool-internal' import type { IPoolWorker } from '../pool-worker' import { FairShareWorkerChoiceStrategy } from './fair-share-worker-choice-strategy' +import { LessBusyWorkerChoiceStrategy } from './less-busy-worker-choice-strategy' import { LessUsedWorkerChoiceStrategy } from './less-used-worker-choice-strategy' import { RoundRobinWorkerChoiceStrategy } from './round-robin-worker-choice-strategy' import type { @@ -24,16 +25,20 @@ export function getWorkerChoiceStrategy< > ( pool: IPoolInternal, workerChoiceStrategy: WorkerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN -): IWorkerChoiceStrategy { +): IWorkerChoiceStrategy { switch (workerChoiceStrategy) { case WorkerChoiceStrategies.ROUND_ROBIN: - return new RoundRobinWorkerChoiceStrategy(pool) + return new RoundRobinWorkerChoiceStrategy(pool) case WorkerChoiceStrategies.LESS_USED: - return new LessUsedWorkerChoiceStrategy(pool) + return new LessUsedWorkerChoiceStrategy(pool) + case WorkerChoiceStrategies.LESS_BUSY: + return new LessBusyWorkerChoiceStrategy(pool) case WorkerChoiceStrategies.FAIR_SHARE: - return new FairShareWorkerChoiceStrategy(pool) + return new FairShareWorkerChoiceStrategy(pool) case WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN: - return new WeightedRoundRobinWorkerChoiceStrategy(pool) + return new WeightedRoundRobinWorkerChoiceStrategy( + pool + ) default: throw new Error( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions