X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpools%2Fselection-strategies%2Finterleaved-weighted-round-robin-worker-choice-strategy.ts;h=0b32bd457af259810459fe6148aacf6dd95e06bd;hb=86ed05989a886c9e44d5be0089d5381debfb2294;hp=ca5b7db9d914d0531fade68eccac9fc7d614bf11;hpb=619f403be01e2954cef4c490f76240b192f16276;p=poolifier.git diff --git a/src/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.ts b/src/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.ts index ca5b7db9..0b32bd45 100644 --- a/src/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.ts @@ -96,9 +96,6 @@ export class InterleavedWeightedRoundRobinWorkerChoiceStrategy< workerNodeKey++ ) { this.workerNodeId = workerNodeKey - if (!this.isWorkerNodeEligible(workerNodeKey)) { - continue - } if ( this.workerNodeId !== this.nextWorkerNodeKey && this.workerVirtualTaskRunTime !== 0 @@ -114,8 +111,7 @@ export class InterleavedWeightedRoundRobinWorkerChoiceStrategy< this.workerVirtualTaskRunTime = this.workerVirtualTaskRunTime + this.getWorkerTaskRunTime(workerNodeKey) - this.previousWorkerNodeKey = - this.nextWorkerNodeKey ?? this.previousWorkerNodeKey + this.setPreviousWorkerNodeKey(this.nextWorkerNodeKey) this.nextWorkerNodeKey = workerNodeKey return this.nextWorkerNodeKey } @@ -143,10 +139,13 @@ export class InterleavedWeightedRoundRobinWorkerChoiceStrategy< public remove (workerNodeKey: number): boolean { if (this.nextWorkerNodeKey === workerNodeKey) { if (this.pool.workerNodes.length === 0) { + this.roundId = 0 + this.workerNodeId = 0 this.nextWorkerNodeKey = 0 } else if (this.nextWorkerNodeKey > this.pool.workerNodes.length - 1) { - this.roundId = - this.roundId === this.roundWeights.length - 1 ? 0 : this.roundId + 1 + if (this.workerNodeId === this.nextWorkerNodeKey) { + this.workerNodeId = this.pool.workerNodes.length - 1 + } this.nextWorkerNodeKey = this.pool.workerNodes.length - 1 } this.workerVirtualTaskRunTime = 0