fix: fix pool busyness semantic with task queueing enabled
[poolifier.git] / src / pools / selection-strategies / least-elu-worker-choice-strategy.ts
index 24c612e073806e1800bbe4113515354dfbdd0334..7c837ceff3d7b7ca45a5bd9da29feaa70784ef0c 100644 (file)
@@ -57,8 +57,7 @@ export class LeastEluWorkerChoiceStrategy<
 
   /** @inheritDoc */
   public choose (): number {
-    this.leastEluNextWorkerNodeKey()
-    return this.nextWorkerNodeKey
+    return this.leastEluNextWorkerNodeKey()
   }
 
   /** @inheritDoc */
@@ -66,7 +65,7 @@ export class LeastEluWorkerChoiceStrategy<
     return true
   }
 
-  private leastEluNextWorkerNodeKey (): void {
+  private leastEluNextWorkerNodeKey (): number {
     let minWorkerElu = Infinity
     for (const [workerNodeKey, workerNode] of this.pool.workerNodes.entries()) {
       const workerUsage = workerNode.usage
@@ -82,5 +81,6 @@ export class LeastEluWorkerChoiceStrategy<
         this.nextWorkerNodeKey = workerNodeKey
       }
     }
+    return this.nextWorkerNodeKey
   }
 }