import type { IPool } from '../pool.js'
-import { DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS } from '../utils.js'
import type { IWorker } from '../worker.js'
import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy.js'
import {
average: true,
median: false
},
- waitTime: DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS,
+ waitTime: {
+ aggregate: true,
+ average: true,
+ median: false
+ },
elu: {
aggregate: true,
average: true,
}
private fairShareNextWorkerNodeKey (): number | undefined {
- if (this.pool.workerNodes.length === 0) {
- return undefined
- }
return this.pool.workerNodes.reduce(
(minWorkerNodeKey, workerNode, workerNodeKey, workerNodes) => {
if (workerNode.strategyData?.virtualTaskEndTimestamp == null) {
workerNodeKey: number,
workerNodeVirtualTaskStartTimestamp: number
): number {
- const workerNodeTaskRunTime =
+ const workerNodeTaskExecutionTime =
+ this.getWorkerNodeTaskWaitTime(workerNodeKey) +
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- this.opts!.measurement === Measurements.elu
+ (this.opts!.measurement === Measurements.elu
? this.getWorkerNodeTaskElu(workerNodeKey)
- : this.getWorkerNodeTaskRunTime(workerNodeKey)
- return workerNodeVirtualTaskStartTimestamp + workerNodeTaskRunTime
+ : this.getWorkerNodeTaskRunTime(workerNodeKey))
+ return workerNodeVirtualTaskStartTimestamp + workerNodeTaskExecutionTime
}
private getWorkerNodeVirtualTaskStartTimestamp (