X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fabstract-worker-choice-strategy.ts;h=4ed7dcae2b0dea882d1eb15a1cb0f88310435e7f;hb=936fa0fb8e70b2c297938cc9455444486b6daa3e;hp=e6269422abb7b2e89d5021fc82ade5a443268b5d;hpb=8990357d855c45cd0063f24092bb58b4163ddb0a;p=poolifier.git diff --git a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts index e6269422..4ed7dcae 100644 --- a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts @@ -28,11 +28,12 @@ export abstract class AbstractWorkerChoiceStrategy< /** * The next worker node key. */ - protected nextWorkerNodeKey: number = 0 + protected nextWorkerNodeKey: number | undefined = 0 /** @inheritDoc */ public readonly strategyPolicy: StrategyPolicy = { - useDynamicWorker: false + dynamicWorkerUsage: false, + dynamicWorkerReady: false } /** @inheritDoc */ @@ -94,7 +95,7 @@ export abstract class AbstractWorkerChoiceStrategy< public abstract update (workerNodeKey: number): boolean /** @inheritDoc */ - public abstract choose (): number + public abstract choose (): number | undefined /** @inheritDoc */ public abstract remove (workerNodeKey: number): boolean @@ -183,6 +184,21 @@ export abstract class AbstractWorkerChoiceStrategy< : this.pool.workerNodes[workerNodeKey].usage.elu.active?.average ?? 0 } + /** + * Assign to nextWorkerNodeKey property the chosen worker node key. + * + * @param chosenWorkerNodeKey - The chosen worker node key. + */ + protected assignChosenWorkerNodeKey ( + chosenWorkerNodeKey: number | undefined + ): void { + if (chosenWorkerNodeKey != null) { + this.nextWorkerNodeKey = chosenWorkerNodeKey + } else { + this.nextWorkerNodeKey = undefined + } + } + protected computeDefaultWorkerWeight (): number { let cpusCycleTimeWeight = 0 for (const cpu of cpus()) {