repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: use UUIDv4 for message id to avoid integer overflow
[poolifier.git]
/
src
/
pools
/
selection-strategies
/
weighted-round-robin-worker-choice-strategy.ts
diff --git
a/src/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.ts
b/src/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.ts
index 2b7cd9420d209effcf8fc0b251c805770c30c0b2..fc9b069522c8366226836a28bac08518dc23b969 100644
(file)
--- a/
src/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.ts
+++ b/
src/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.ts
@@
-31,9
+31,9
@@
export class WeightedRoundRobinWorkerChoiceStrategy<
}
/**
}
/**
- * Worker i
ndex
where the current task will be submitted.
+ * Worker i
d
where the current task will be submitted.
*/
*/
- private currentWorkerI
ndex
: number = 0
+ private currentWorkerI
d
: number = 0
/**
* Default worker weight.
*/
/**
* Default worker weight.
*/
@@
-59,7
+59,7
@@
export class WeightedRoundRobinWorkerChoiceStrategy<
/** {@inheritDoc} */
public reset (): boolean {
/** {@inheritDoc} */
public reset (): boolean {
- this.currentWorkerI
ndex
= 0
+ this.currentWorkerI
d
= 0
this.workersTaskRunTime.clear()
this.initWorkersTaskRunTime()
return true
this.workersTaskRunTime.clear()
this.initWorkersTaskRunTime()
return true
@@
-67,7
+67,8
@@
export class WeightedRoundRobinWorkerChoiceStrategy<
/** {@inheritDoc} */
public choose (): Worker {
/** {@inheritDoc} */
public choose (): Worker {
- const chosenWorker = this.pool.workers[this.currentWorkerIndex]
+ const chosenWorker = this.pool.workers.get(this.currentWorkerId)
+ ?.worker as Worker
if (this.isDynamicPool && !this.workersTaskRunTime.has(chosenWorker)) {
this.initWorkerTaskRunTime(chosenWorker)
}
if (this.isDynamicPool && !this.workersTaskRunTime.has(chosenWorker)) {
this.initWorkerTaskRunTime(chosenWorker)
}
@@
-84,12
+85,12
@@
export class WeightedRoundRobinWorkerChoiceStrategy<
(this.getWorkerVirtualTaskRunTime(chosenWorker) ?? 0)
)
} else {
(this.getWorkerVirtualTaskRunTime(chosenWorker) ?? 0)
)
} else {
- this.currentWorkerI
ndex
=
- this.currentWorkerI
ndex === this.pool.workers.length
- 1
+ this.currentWorkerI
d
=
+ this.currentWorkerI
d === this.pool.workers.size
- 1
? 0
? 0
- : this.currentWorkerI
ndex
+ 1
+ : this.currentWorkerI
d
+ 1
this.setWorkerTaskRunTime(
this.setWorkerTaskRunTime(
- this.pool.workers
[this.currentWorkerIndex]
,
+ this.pool.workers
.get(this.currentWorkerId)?.worker as Worker
,
workerTaskWeight,
0
)
workerTaskWeight,
0
)
@@
-98,8
+99,8
@@
export class WeightedRoundRobinWorkerChoiceStrategy<
}
private initWorkersTaskRunTime (): void {
}
private initWorkersTaskRunTime (): void {
- for (const
worker of this.pool.workers
) {
- this.initWorkerTaskRunTime(worker)
+ for (const
value of this.pool.workers.values()
) {
+ this.initWorkerTaskRunTime(
value.
worker)
}
}
}
}