perf: use a single array to store pool workers and their related data
[poolifier.git] / src / pools / selection-strategies / selection-strategies-utils.ts
index 70735c086cab01ca34745144d4662f50d94caf20..1330ec19bcf5f182df56c213715358bd4659e847 100644 (file)
@@ -1,7 +1,8 @@
 import type { IPoolInternal } from '../pool-internal'
 import type { IPoolWorker } from '../pool-worker'
 import { FairShareWorkerChoiceStrategy } from './fair-share-worker-choice-strategy'
-import { LessRecentlyUsedWorkerChoiceStrategy } from './less-recently-used-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 {
   IWorkerChoiceStrategy,
@@ -13,8 +14,8 @@ import { WeightedRoundRobinWorkerChoiceStrategy } from './weighted-round-robin-w
 /**
  * Gets the worker choice strategy instance.
  *
- * @param pool The pool instance.
- * @param workerChoiceStrategy The worker choice strategy.
+ * @param pool The pool instance.
+ * @param workerChoiceStrategy The worker choice strategy.
  * @returns The worker choice strategy instance.
  */
 export function getWorkerChoiceStrategy<
@@ -28,8 +29,10 @@ export function getWorkerChoiceStrategy<
   switch (workerChoiceStrategy) {
     case WorkerChoiceStrategies.ROUND_ROBIN:
       return new RoundRobinWorkerChoiceStrategy(pool)
-    case WorkerChoiceStrategies.LESS_RECENTLY_USED:
-      return new LessRecentlyUsedWorkerChoiceStrategy(pool)
+    case WorkerChoiceStrategies.LESS_USED:
+      return new LessUsedWorkerChoiceStrategy(pool)
+    case WorkerChoiceStrategies.LESS_BUSY:
+      return new LessBusyWorkerChoiceStrategy(pool)
     case WorkerChoiceStrategies.FAIR_SHARE:
       return new FairShareWorkerChoiceStrategy(pool)
     case WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN: