fix: ensure a dynamic scheduled for removal can't be used
[poolifier.git] / src / pools / selection-strategies / least-busy-worker-choice-strategy.ts
index 984340b552f458c1f2d9704f2767dc39e329d649..81cadde164c9d4371179546fe6fff1a275bba5a7 100644 (file)
@@ -74,10 +74,11 @@ export class LeastBusyWorkerChoiceStrategy<
   private leastBusyNextWorkerNodeKey (): number | undefined {
     return this.pool.workerNodes.reduce(
       (minWorkerNodeKey, workerNode, workerNodeKey, workerNodes) => {
-        return (workerNode.usage.runTime.aggregate ?? 0) +
-          (workerNode.usage.waitTime.aggregate ?? 0) <
-          (workerNodes[minWorkerNodeKey].usage.runTime.aggregate ?? 0) +
-            (workerNodes[minWorkerNodeKey].usage.waitTime.aggregate ?? 0)
+        return this.isWorkerNodeReady(workerNodeKey) &&
+          (workerNode.usage.runTime.aggregate ?? 0) +
+            (workerNode.usage.waitTime.aggregate ?? 0) <
+            (workerNodes[minWorkerNodeKey].usage.runTime.aggregate ?? 0) +
+              (workerNodes[minWorkerNodeKey].usage.waitTime.aggregate ?? 0)
           ? workerNodeKey
           : minWorkerNodeKey
       },