X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Ffair-share-worker-choice-strategy.ts;h=88e12b94fa8ef50b50ede22026e95f0242000d45;hb=884743b122a66be45c94d83d9230e28a9ab43836;hp=357b770a1f3eec275e87e8d7702ed42a8fd26bbd;hpb=7f13b544e1f3041a2a2e8cf16ec714b4d2e7c2ce;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 357b770a..88e12b94 100644 --- a/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts @@ -5,13 +5,12 @@ import { type IWorkerChoiceStrategy, Measurements, type TaskStatisticsRequirements, - type WorkerChoiceStrategyOptions + type WorkerChoiceStrategyOptions, } from './selection-strategies-types.js' /** * Selects the next worker with a fair share scheduling algorithm. * Loosely modeled after the fair queueing algorithm: https://en.wikipedia.org/wiki/Fair_queuing. - * * @typeParam Worker - Type of worker which manages the strategy. * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data. * @typeParam Response - Type of execution response. This can only be structured-cloneable data. @@ -28,18 +27,18 @@ export class FairShareWorkerChoiceStrategy< runTime: { aggregate: true, average: true, - median: false + median: false, }, waitTime: { aggregate: true, average: true, - median: false + median: false, }, elu: { aggregate: true, average: true, - median: false - } + median: false, + }, } /** @inheritDoc */ @@ -63,7 +62,7 @@ export class FairShareWorkerChoiceStrategy< public update (workerNodeKey: number): boolean { this.pool.workerNodes[workerNodeKey].strategyData = { virtualTaskEndTimestamp: - this.computeWorkerNodeVirtualTaskEndTimestamp(workerNodeKey) + this.computeWorkerNodeVirtualTaskEndTimestamp(workerNodeKey), } return true } @@ -86,7 +85,7 @@ export class FairShareWorkerChoiceStrategy< if (workerNode.strategyData?.virtualTaskEndTimestamp == null) { workerNode.strategyData = { virtualTaskEndTimestamp: - this.computeWorkerNodeVirtualTaskEndTimestamp(workerNodeKey) + this.computeWorkerNodeVirtualTaskEndTimestamp(workerNodeKey), } } return this.isWorkerNodeReady(workerNodeKey) && @@ -103,7 +102,6 @@ export class FairShareWorkerChoiceStrategy< /** * Computes the worker node key virtual task end timestamp. - * * @param workerNodeKey - The worker node key. * @returns The worker node key virtual task end timestamp. */ @@ -136,7 +134,7 @@ export class FairShareWorkerChoiceStrategy< this.pool.workerNodes[workerNodeKey]?.strategyData ?.virtualTaskEndTimestamp const now = performance.now() - return now < (virtualTaskEndTimestamp ?? -Infinity) + return now < (virtualTaskEndTimestamp ?? Number.NEGATIVE_INFINITY) ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion virtualTaskEndTimestamp! : now