repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'elu-strategy' of github.com:poolifier/poolifier into elu-strategy
[poolifier.git]
/
src
/
pools
/
selection-strategies
/
worker-choice-strategy-context.ts
diff --git
a/src/pools/selection-strategies/worker-choice-strategy-context.ts
b/src/pools/selection-strategies/worker-choice-strategy-context.ts
index 21c24f7c63799561f1b32e17ebda121b5a2464d3..a0ba25838dc524ea678c97701e20ac7aa1f7b413 100644
(file)
--- a/
src/pools/selection-strategies/worker-choice-strategy-context.ts
+++ b/
src/pools/selection-strategies/worker-choice-strategy-context.ts
@@
-2,12
+2,14
@@
import { DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS } from '../../utils'
import type { IPool } from '../pool'
import type { IWorker } from '../worker'
import { FairShareWorkerChoiceStrategy } from './fair-share-worker-choice-strategy'
import type { IPool } from '../pool'
import type { IWorker } from '../worker'
import { FairShareWorkerChoiceStrategy } from './fair-share-worker-choice-strategy'
+import { InterleavedWeightedRoundRobinWorkerChoiceStrategy } from './interleaved-weighted-round-robin-worker-choice-strategy'
import { LeastBusyWorkerChoiceStrategy } from './least-busy-worker-choice-strategy'
import { LeastUsedWorkerChoiceStrategy } from './least-used-worker-choice-strategy'
import { LeastBusyWorkerChoiceStrategy } from './least-busy-worker-choice-strategy'
import { LeastUsedWorkerChoiceStrategy } from './least-used-worker-choice-strategy'
+import { LeastEluWorkerChoiceStrategy } from './least-elu-worker-choice-strategy'
import { RoundRobinWorkerChoiceStrategy } from './round-robin-worker-choice-strategy'
import type {
IWorkerChoiceStrategy,
import { RoundRobinWorkerChoiceStrategy } from './round-robin-worker-choice-strategy'
import type {
IWorkerChoiceStrategy,
-
RequiredStatistic
s,
+
TaskStatisticsRequirement
s,
WorkerChoiceStrategy,
WorkerChoiceStrategyOptions
} from './selection-strategies-types'
WorkerChoiceStrategy,
WorkerChoiceStrategyOptions
} from './selection-strategies-types'
@@
-69,6
+71,13
@@
export class WorkerChoiceStrategyContext<
opts
)
],
opts
)
],
+ [
+ WorkerChoiceStrategies.LEAST_ELU,
+ new (LeastEluWorkerChoiceStrategy.bind(this))<Worker, Data, Response>(
+ pool,
+ opts
+ )
+ ],
[
WorkerChoiceStrategies.FAIR_SHARE,
new (FairShareWorkerChoiceStrategy.bind(this))<Worker, Data, Response>(
[
WorkerChoiceStrategies.FAIR_SHARE,
new (FairShareWorkerChoiceStrategy.bind(this))<Worker, Data, Response>(
@@
-83,21
+92,29
@@
export class WorkerChoiceStrategyContext<
Data,
Response
>(pool, opts)
Data,
Response
>(pool, opts)
+ ],
+ [
+ WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN,
+ new (InterleavedWeightedRoundRobinWorkerChoiceStrategy.bind(this))<
+ Worker,
+ Data,
+ Response
+ >(pool, opts)
]
])
}
/**
]
])
}
/**
- * Gets the worker choice strategy
in the context required statistics
.
+ * Gets the worker choice strategy
task statistics requirements in the context
.
*
*
- * @returns The
required statistic
s.
+ * @returns The
task statistics requirement
s.
*/
*/
- public get
RequiredStatistics (): RequiredStatistic
s {
+ public get
TaskStatisticsRequirements (): TaskStatisticsRequirement
s {
return (
this.workerChoiceStrategies.get(
this.workerChoiceStrategy
) as IWorkerChoiceStrategy
return (
this.workerChoiceStrategies.get(
this.workerChoiceStrategy
) as IWorkerChoiceStrategy
- ).
requiredStatistic
s
+ ).
taskStatisticsRequirement
s
}
/**
}
/**