repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: fix build after merge with main
[poolifier.git]
/
src
/
pools
/
selection-strategies
/
least-elu-worker-choice-strategy.ts
diff --git
a/src/pools/selection-strategies/least-elu-worker-choice-strategy.ts
b/src/pools/selection-strategies/least-elu-worker-choice-strategy.ts
index be3c4f5e2918ccd4bc9395bf0ab19fb72cfd19f0..fbbd48e3c918568b3c493a8cff4e4044a67106bc 100644
(file)
--- a/
src/pools/selection-strategies/least-elu-worker-choice-strategy.ts
+++ b/
src/pools/selection-strategies/least-elu-worker-choice-strategy.ts
@@
-4,7
+4,7
@@
import type { IWorker } from '../worker'
import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy'
import type {
IWorkerChoiceStrategy,
import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy'
import type {
IWorkerChoiceStrategy,
- TaskStatistics,
+ TaskStatistics
Requirements
,
WorkerChoiceStrategyOptions
} from './selection-strategies-types'
WorkerChoiceStrategyOptions
} from './selection-strategies-types'
@@
-23,9
+23,9
@@
export class LeastEluWorkerChoiceStrategy<
extends AbstractWorkerChoiceStrategy<Worker, Data, Response>
implements IWorkerChoiceStrategy {
/** @inheritDoc */
extends AbstractWorkerChoiceStrategy<Worker, Data, Response>
implements IWorkerChoiceStrategy {
/** @inheritDoc */
- public readonly taskStatistics
: TaskStatistic
s = {
+ public readonly taskStatistics
Requirements: TaskStatisticsRequirement
s = {
runTime: false,
runTime: false,
- avgRunTime:
tru
e,
+ avgRunTime:
fals
e,
medRunTime: false,
waitTime: false,
avgWaitTime: false,
medRunTime: false,
waitTime: false,
avgWaitTime: false,
@@
-54,19
+54,15
@@
export class LeastEluWorkerChoiceStrategy<
/** @inheritDoc */
public choose (): number {
/** @inheritDoc */
public choose (): number {
- // const freeWorkerNodeKey = this.findFreeWorkerNodeKey()
- // if (freeWorkerNodeKey !== -1) {
- // return freeWorkerNodeKey
- // }
- let minTasksElu = Infinity
+ let minWorkerElu = Infinity
let leastEluWorkerNodeKey!: number
for (const [workerNodeKey, workerNode] of this.pool.workerNodes.entries()) {
let leastEluWorkerNodeKey!: number
for (const [workerNodeKey, workerNode] of this.pool.workerNodes.entries()) {
- const
tasksUsage = workerNode.tasks
Usage
- const
tasksElu = tasks
Usage.elu?.utilization ?? 0
- if (
tasks
Elu === 0) {
+ const
workerUsage = workerNode.worker
Usage
+ const
workerElu = worker
Usage.elu?.utilization ?? 0
+ if (
worker
Elu === 0) {
return workerNodeKey
return workerNodeKey
- } else if (
tasksElu < minTasks
Elu) {
- min
TasksElu = tasks
Elu
+ } else if (
workerElu < minWorker
Elu) {
+ min
WorkerElu = worker
Elu
leastEluWorkerNodeKey = workerNodeKey
}
}
leastEluWorkerNodeKey = workerNodeKey
}
}