* @template Response Type of response of execution. This can only be serializable data.
*/
class RoundRobinWorkerChoiceStrategy<Worker extends IWorker, Data, Response>
- implements IWorkerChoiceStrategy<Worker>
-{
+ implements IWorkerChoiceStrategy<Worker> {
/**
* Index for the next worker.
*/
public choose (): Worker {
const chosenWorker = this.pool.workers[this.nextWorkerIndex]
this.nextWorkerIndex =
- this.pool.workers.length - 1 === this.nextWorkerIndex
+ this.nextWorkerIndex === this.pool.workers.length - 1
? 0
: this.nextWorkerIndex + 1
return chosenWorker
Worker extends IWorker,
Data,
Response
-> implements IWorkerChoiceStrategy<Worker>
-{
+> implements IWorkerChoiceStrategy<Worker> {
/**
* Constructs a worker choice strategy that selects based on less recently used.
*
* @template Response Type of response of execution. This can only be serializable data.
*/
class DynamicPoolWorkerChoiceStrategy<Worker extends IWorker, Data, Response>
- implements IWorkerChoiceStrategy<Worker>
-{
+ implements IWorkerChoiceStrategy<Worker> {
private workerChoiceStrategy: IWorkerChoiceStrategy<Worker>
/**
private createDynamicallyWorkerCallback: () => Worker,
workerChoiceStrategy: WorkerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN
) {
- this.workerChoiceStrategy =
- SelectionStrategiesUtils.getWorkerChoiceStrategy(
- this.pool,
- workerChoiceStrategy
- )
+ this.workerChoiceStrategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(
+ this.pool,
+ workerChoiceStrategy
+ )
}
/** @inheritdoc */
public setWorkerChoiceStrategy (
workerChoiceStrategy: WorkerChoiceStrategy
): void {
- this.workerChoiceStrategy =
- this.getPoolWorkerChoiceStrategy(workerChoiceStrategy)
+ this.workerChoiceStrategy = this.getPoolWorkerChoiceStrategy(
+ workerChoiceStrategy
+ )
}
/**
return new LessRecentlyUsedWorkerChoiceStrategy(pool)
default:
throw new Error(
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
`Worker choice strategy '${workerChoiceStrategy}' not found`
)
}