feat: worker node readiness aware worker choice strategies
[poolifier.git] / src / pools / selection-strategies / least-elu-worker-choice-strategy.ts
index 54d0e7cb054de064d8f9dfbfe074df5f1ba5bbf6..57e805e18b5b5fb9f25e3b9170fb3baf9e84fa49 100644 (file)
@@ -61,10 +61,13 @@ export class LeastEluWorkerChoiceStrategy<
     for (const [workerNodeKey, workerNode] of this.pool.workerNodes.entries()) {
       const workerUsage = workerNode.usage
       const workerElu = workerUsage.elu?.active?.aggregate ?? 0
-      if (workerElu === 0) {
+      if (this.workerNodeReady(workerNodeKey) && workerElu === 0) {
         this.nextWorkerNodeId = workerNodeKey
         break
-      } else if (workerElu < minWorkerElu) {
+      } else if (
+        this.workerNodeReady(workerNodeKey) &&
+        workerElu < minWorkerElu
+      ) {
         minWorkerElu = workerElu
         this.nextWorkerNodeId = workerNodeKey
       }