repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github.com:poolifier/poolifier
[poolifier.git]
/
src
/
pools
/
selection-strategies
/
abstract-worker-choice-strategy.ts
diff --git
a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts
b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts
index 4ed7dcae2b0dea882d1eb15a1cb0f88310435e7f..2fba4e9fbd1a17be10fd9d6a86a6cb574a9ad03b 100644
(file)
--- a/
src/pools/selection-strategies/abstract-worker-choice-strategy.ts
+++ b/
src/pools/selection-strategies/abstract-worker-choice-strategy.ts
@@
-30,10
+30,15
@@
export abstract class AbstractWorkerChoiceStrategy<
*/
protected nextWorkerNodeKey: number | undefined = 0
*/
protected nextWorkerNodeKey: number | undefined = 0
+ /**
+ * The previous worker node key.
+ */
+ protected previousWorkerNodeKey: number = 0
+
/** @inheritDoc */
public readonly strategyPolicy: StrategyPolicy = {
dynamicWorkerUsage: false,
/** @inheritDoc */
public readonly strategyPolicy: StrategyPolicy = {
dynamicWorkerUsage: false,
- dynamicWorkerReady:
fals
e
+ dynamicWorkerReady:
tru
e
}
/** @inheritDoc */
}
/** @inheritDoc */
@@
-88,6
+93,11
@@
export abstract class AbstractWorkerChoiceStrategy<
}
}
}
}
+ protected resetWorkerNodeKeyProperties (): void {
+ this.nextWorkerNodeKey = 0
+ this.previousWorkerNodeKey = 0
+ }
+
/** @inheritDoc */
public abstract reset (): boolean
/** @inheritDoc */
public abstract reset (): boolean
@@
-185,17
+195,17
@@
export abstract class AbstractWorkerChoiceStrategy<
}
/**
}
/**
- *
Assign to nextWorkerNodeKey property the chosen worker node ke
y.
+ *
Check the next worker node eligibilit
y.
*
*
- * @param chosenWorkerNodeKey - The chosen worker node key.
+ * @param chosen
Next
WorkerNodeKey - The chosen worker node key.
*/
*/
- protected
assignChosenWorkerNodeKe
y (
- chosenWorkerNodeKey: number | undefined
+ protected
checkNextWorkerNodeEligibilit
y (
+ chosen
Next
WorkerNodeKey: number | undefined
): void {
): void {
- if (chosenWorkerNodeKey != null) {
- this.nextWorkerNodeKey = chosenWorkerNodeKey
- } else {
+ if (!this.isWorkerNodeEligible(this.nextWorkerNodeKey as number)) {
this.nextWorkerNodeKey = undefined
this.nextWorkerNodeKey = undefined
+ this.previousWorkerNodeKey =
+ chosenNextWorkerNodeKey ?? this.previousWorkerNodeKey
}
}
}
}