X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Ffair-share-worker-choice-strategy.ts;h=aff4e73dd3a6e5a641a626e153f39bd796b32108;hb=26ce26ca8861318068427cc86697103e7a3ddbf4;hp=a337278ba9ce75a074c1b32d751d8f928ec86496;hpb=b7e141c40bccfd7a4ec0ff98b7829f7d296f048b;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 a337278b..aff4e73d 100644 --- a/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts @@ -1,15 +1,12 @@ -import { - DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS, - DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS -} from '../../utils' +import { DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS } from '../../utils' import type { IPool } from '../pool' import type { IWorker, StrategyData } from '../worker' import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy' import { type IWorkerChoiceStrategy, + type InternalWorkerChoiceStrategyOptions, Measurements, - type TaskStatisticsRequirements, - type WorkerChoiceStrategyOptions + type TaskStatisticsRequirements } from './selection-strategies-types' /** @@ -45,7 +42,7 @@ export class FairShareWorkerChoiceStrategy< /** @inheritDoc */ public constructor ( pool: IPool, - opts: WorkerChoiceStrategyOptions = DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS + opts: InternalWorkerChoiceStrategyOptions ) { super(pool, opts) this.setTaskStatisticsRequirements(this.opts) @@ -89,9 +86,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 },