X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fselection-strategies-utils.ts;h=1c0b91b4de0ae9e6ca8a3c93ce11c06fdec39b1b;hb=8b7aa4204c27efd1dc699f7baea65b5262bd26b3;hp=6e63f781dd0da7b1d0185dda8aa2b2243c451dc7;hpb=54aa8d5a576b22bfdbebea90021502035a5e1c8c;p=poolifier.git diff --git a/src/pools/selection-strategies/selection-strategies-utils.ts b/src/pools/selection-strategies/selection-strategies-utils.ts index 6e63f781..1c0b91b4 100644 --- a/src/pools/selection-strategies/selection-strategies-utils.ts +++ b/src/pools/selection-strategies/selection-strategies-utils.ts @@ -15,7 +15,7 @@ import { type TaskStatisticsRequirements, WorkerChoiceStrategies, type WorkerChoiceStrategy, - type WorkerChoiceStrategyOptions + type WorkerChoiceStrategyOptions, } from './selection-strategies-types.js' import { WeightedRoundRobinWorkerChoiceStrategy } from './weighted-round-robin-worker-choice-strategy.js' import type { WorkerChoiceStrategiesContext } from './worker-choice-strategies-context.js' @@ -95,9 +95,9 @@ export const buildWorkerChoiceStrategyOptions = < ...{ runTime: { median: false }, waitTime: { median: false }, - elu: { median: false } + elu: { median: false }, }, - ...opts + ...opts, } } @@ -118,41 +118,40 @@ export const toggleMedianMeasurementStatisticsRequirements = ( export const buildWorkerChoiceStrategiesPolicy = ( workerChoiceStrategies: Map ): StrategyPolicy => { - const policies: StrategyPolicy[] = [] - for (const workerChoiceStrategy of workerChoiceStrategies.values()) { - policies.push(workerChoiceStrategy.strategyPolicy) - } + const policies: StrategyPolicy[] = Array.from( + workerChoiceStrategies, + ([_, workerChoiceStrategy]) => workerChoiceStrategy.strategyPolicy + ) return { dynamicWorkerUsage: policies.some(p => p.dynamicWorkerUsage), - dynamicWorkerReady: policies.some(p => p.dynamicWorkerReady) + dynamicWorkerReady: policies.some(p => p.dynamicWorkerReady), } } export const buildWorkerChoiceStrategiesTaskStatisticsRequirements = ( workerChoiceStrategies: Map ): TaskStatisticsRequirements => { - const taskStatisticsRequirements: TaskStatisticsRequirements[] = [] - for (const workerChoiceStrategy of workerChoiceStrategies.values()) { - taskStatisticsRequirements.push( + const taskStatisticsRequirements: TaskStatisticsRequirements[] = Array.from( + workerChoiceStrategies, + ([_, workerChoiceStrategy]) => workerChoiceStrategy.taskStatisticsRequirements - ) - } + ) return { runTime: { aggregate: taskStatisticsRequirements.some(r => r.runTime.aggregate), average: taskStatisticsRequirements.some(r => r.runTime.average), - median: taskStatisticsRequirements.some(r => r.runTime.median) + median: taskStatisticsRequirements.some(r => r.runTime.median), }, waitTime: { aggregate: taskStatisticsRequirements.some(r => r.waitTime.aggregate), average: taskStatisticsRequirements.some(r => r.waitTime.average), - median: taskStatisticsRequirements.some(r => r.waitTime.median) + median: taskStatisticsRequirements.some(r => r.waitTime.median), }, elu: { aggregate: taskStatisticsRequirements.some(r => r.elu.aggregate), average: taskStatisticsRequirements.some(r => r.elu.average), - median: taskStatisticsRequirements.some(r => r.elu.median) - } + median: taskStatisticsRequirements.some(r => r.elu.median), + }, } }