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'
...{
runTime: { median: false },
waitTime: { median: false },
- elu: { median: false }
+ elu: { median: false },
},
- ...opts
+ ...opts,
}
}
export const buildWorkerChoiceStrategiesPolicy = (
workerChoiceStrategies: Map<WorkerChoiceStrategy, IWorkerChoiceStrategy>
): 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<WorkerChoiceStrategy, IWorkerChoiceStrategy>
): 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),
+ },
}
}