X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Ffair-share-worker-choice-strategy.ts;h=f47a1e6e9ba7724fa665235a2a9204219ed2220e;hb=8d0e8c50707b1c0045c6d2072a4deb18dd857a68;hp=af3fcfa00ce06fdb369f7372e8154016a504efce;hpb=f3a91bac2d5c34013f6394ebbe3576569b0cfcc0;p=poolifier.git diff --git a/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts b/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts index af3fcfa0..f47a1e6e 100644 --- a/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts @@ -89,9 +89,10 @@ export class FairShareWorkerChoiceStrategy< this.computeWorkerNodeVirtualTaskEndTimestamp(workerNodeKey) } } - return (workerNode.strategyData.virtualTaskEndTimestamp as number) < - ((workerNodes[minWorkerNodeKey].strategyData as StrategyData) - .virtualTaskEndTimestamp as number) + return this.isWorkerNodeReady(workerNodeKey) && + (workerNode.strategyData.virtualTaskEndTimestamp as number) < + ((workerNodes[minWorkerNodeKey].strategyData as StrategyData) + .virtualTaskEndTimestamp as number) ? workerNodeKey : minWorkerNodeKey }, @@ -128,12 +129,12 @@ export class FairShareWorkerChoiceStrategy< private getWorkerNodeVirtualTaskStartTimestamp ( workerNodeKey: number ): number { + const virtualTaskEndTimestamp = + this.pool.workerNodes[workerNodeKey]?.strategyData + ?.virtualTaskEndTimestamp const now = performance.now() - return now < - (this.pool.workerNodes[workerNodeKey]?.strategyData - ?.virtualTaskEndTimestamp ?? -Infinity) - ? (this.pool.workerNodes[workerNodeKey]?.strategyData - ?.virtualTaskEndTimestamp as number) + return now < (virtualTaskEndTimestamp ?? -Infinity) + ? (virtualTaskEndTimestamp as number) : now } }