X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fabstract-worker-choice-strategy.ts;h=bf67b80e84ef257bd8d10ffe86946a53b2433b8a;hb=refs%2Ftags%2Fv2.4.12;hp=9aabdfd29d3a512df229b7b28bcfe631eaae2804;hpb=138d29a820e8a61d10ba03fe42c5d77596ef788c;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 9aabdfd2..bf67b80e 100644 --- a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts @@ -66,7 +66,7 @@ export abstract class AbstractWorkerChoiceStrategy< public abstract reset (): boolean /** @inheritDoc */ - public abstract update (): boolean + public abstract update (workerNodeKey: number): boolean /** @inheritDoc */ public abstract choose (): number @@ -106,7 +106,7 @@ export abstract class AbstractWorkerChoiceStrategy< */ private findFirstFreeWorkerNodeKey (): number { return this.pool.workerNodes.findIndex(workerNode => { - return workerNode.tasksUsage?.running === 0 + return workerNode.tasksUsage.running === 0 }) } @@ -122,11 +122,15 @@ export abstract class AbstractWorkerChoiceStrategy< private findLastFreeWorkerNodeKey (): number { // It requires node >= 18.0.0: // return this.workerNodes.findLastIndex(workerNode => { - // return workerNode.tasksUsage?.running === 0 + // return workerNode.tasksUsage.running === 0 // }) - for (let i = this.pool.workerNodes.length - 1; i >= 0; i--) { - if (this.pool.workerNodes[i].tasksUsage?.running === 0) { - return i + for ( + let workerNodeKey = this.pool.workerNodes.length - 1; + workerNodeKey >= 0; + workerNodeKey-- + ) { + if (this.pool.workerNodes[workerNodeKey].tasksUsage.running === 0) { + return workerNodeKey } } return -1