X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Finterleaved-weighted-round-robin-worker-choice-strategy.ts;h=2e82ac3d9caaaf0146ba9f3f8e9b6f45df1089da;hb=a7385b49901fc73522c657776611159cd3c35bad;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..2e82ac3d 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 @@ -143,10 +140,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