/** @inheritDoc */
public readonly strategyPolicy: StrategyPolicy = {
dynamicWorkerUsage: false,
- dynamicWorkerReady: false
+ dynamicWorkerReady: true
}
/** @inheritDoc */
}
}
+ protected resetWorkerNodeKeyProperties (): void {
+ this.nextWorkerNodeKey = 0
+ this.previousWorkerNodeKey = 0
+ }
+
/** @inheritDoc */
public abstract reset (): boolean
}
/**
- * Assign to nextWorkerNodeKey property the chosen worker node key.
+ * Sets safely the previous worker node key.
+ *
+ * @param workerNodeKey - The worker node key.
+ */
+ protected setPreviousWorkerNodeKey (workerNodeKey: number | undefined): void {
+ this.previousWorkerNodeKey = workerNodeKey ?? this.previousWorkerNodeKey
+ }
+
+ /**
+ * Check the next worker node eligibility.
*
- * @param chosenWorkerNodeKey - The chosen worker node key.
+ * @param previousWorkerNodeKey - The previous worker node key.
*/
- protected assignChosenWorkerNodeKey (
- chosenWorkerNodeKey: number | undefined
+ protected checkNextWorkerNodeEligibility (
+ previousWorkerNodeKey: number | undefined
): void {
- if (chosenWorkerNodeKey != null) {
- this.nextWorkerNodeKey = chosenWorkerNodeKey
- } else {
+ if (!this.isWorkerNodeEligible(this.nextWorkerNodeKey as number)) {
this.nextWorkerNodeKey = undefined
+ this.setPreviousWorkerNodeKey(previousWorkerNodeKey)
}
}