refactor: silence sonar
[poolifier.git] / src / pools / selection-strategies / abstract-worker-choice-strategy.ts
index 4ed7dcae2b0dea882d1eb15a1cb0f88310435e7f..cc38d196941e4611af2235a84899cd82ab55c9f0 100644 (file)
@@ -30,10 +30,15 @@ export abstract class AbstractWorkerChoiceStrategy<
    */
   protected nextWorkerNodeKey: number | undefined = 0
 
+  /**
+   * The previous worker node key.
+   */
+  protected previousWorkerNodeKey: number = 0
+
   /** @inheritDoc */
   public readonly strategyPolicy: StrategyPolicy = {
     dynamicWorkerUsage: false,
-    dynamicWorkerReady: false
+    dynamicWorkerReady: true
   }
 
   /** @inheritDoc */
@@ -199,6 +204,16 @@ export abstract class AbstractWorkerChoiceStrategy<
     }
   }
 
+  protected checkNextWorkerNodeEligibility (
+    chosenWorkerNodeKey: number | undefined
+  ): void {
+    if (!this.isWorkerNodeEligible(this.nextWorkerNodeKey as number)) {
+      this.nextWorkerNodeKey = undefined
+      this.previousWorkerNodeKey =
+        chosenWorkerNodeKey ?? this.previousWorkerNodeKey
+    }
+  }
+
   protected computeDefaultWorkerWeight (): number {
     let cpusCycleTimeWeight = 0
     for (const cpu of cpus()) {