X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fabstract-worker-choice-strategy.ts;h=c4f1e2c65483ccceb1c3bb2f3343caac2c7530cf;hb=9b1068374b1a52479b07e1e22b692289d5579237;hp=37759198c882aae1f47256a7f42e19e9261b92a8;hpb=3c93feb918b47943d801029fad82a61469e40127;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 37759198..c4f1e2c6 100644 --- a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts @@ -30,9 +30,9 @@ export abstract class AbstractWorkerChoiceStrategy< // private toggleFindLastFreeWorkerNodeKey: boolean = false /** - * Id of the next worker node. + * The next worker node key. */ - protected nextWorkerNodeId: number = 0 + protected nextWorkerNodeKey: number = 0 /** @inheritDoc */ public readonly strategyPolicy: StrategyPolicy = { @@ -128,6 +128,10 @@ export abstract class AbstractWorkerChoiceStrategy< this.setTaskStatisticsRequirements(this.opts) } + protected isWorkerNodeReady (workerNodeKey: number): boolean { + return this.pool.workerNodes[workerNodeKey].info.ready + } + // /** // * Finds a free worker node key. // * @@ -152,8 +156,8 @@ export abstract class AbstractWorkerChoiceStrategy< */ protected getWorkerTaskRunTime (workerNodeKey: number): number { return this.taskStatisticsRequirements.runTime.median - ? this.pool.workerNodes[workerNodeKey].workerUsage.runTime.median - : this.pool.workerNodes[workerNodeKey].workerUsage.runTime.average + ? this.pool.workerNodes[workerNodeKey].usage.runTime?.median ?? 0 + : this.pool.workerNodes[workerNodeKey].usage.runTime?.average ?? 0 } /** @@ -166,8 +170,8 @@ export abstract class AbstractWorkerChoiceStrategy< */ protected getWorkerTaskWaitTime (workerNodeKey: number): number { return this.taskStatisticsRequirements.waitTime.median - ? this.pool.workerNodes[workerNodeKey].workerUsage.waitTime.median - : this.pool.workerNodes[workerNodeKey].workerUsage.waitTime.average + ? this.pool.workerNodes[workerNodeKey].usage.waitTime?.median ?? 0 + : this.pool.workerNodes[workerNodeKey].usage.waitTime?.average ?? 0 } /** @@ -180,8 +184,8 @@ export abstract class AbstractWorkerChoiceStrategy< */ protected getWorkerTaskElu (workerNodeKey: number): number { return this.taskStatisticsRequirements.elu.median - ? this.pool.workerNodes[workerNodeKey].workerUsage.elu.active.median - : this.pool.workerNodes[workerNodeKey].workerUsage.elu.active.average + ? this.pool.workerNodes[workerNodeKey].usage.elu.active?.median ?? 0 + : this.pool.workerNodes[workerNodeKey].usage.elu.active?.average ?? 0 } protected computeDefaultWorkerWeight (): number { @@ -206,7 +210,7 @@ export abstract class AbstractWorkerChoiceStrategy< // */ // private findFirstFreeWorkerNodeKey (): number { // return this.pool.workerNodes.findIndex(workerNode => { - // return workerNode.workerUsage.tasks.executing === 0 + // return workerNode.usage.tasks.executing === 0 // }) // } @@ -221,17 +225,15 @@ export abstract class AbstractWorkerChoiceStrategy< // */ // private findLastFreeWorkerNodeKey (): number { // // It requires node >= 18.0.0: - // // return this.workerNodes.findLastIndex(workerNode => { - // // return workerNode.workerUsage.tasks.executing === 0 + // // return this.pool.workerNodes.findLastIndex(workerNode => { + // // return workerNode.usage.tasks.executing === 0 // // }) // for ( // let workerNodeKey = this.pool.workerNodes.length - 1; // workerNodeKey >= 0; // workerNodeKey-- // ) { - // if ( - // this.pool.workerNodes[workerNodeKey].workerUsage.tasks.executing === 0 - // ) { + // if (this.pool.workerNodes[workerNodeKey].usage.tasks.executing === 0) { // return workerNodeKey // } // }