-import { getDefaultInternalWorkerChoiceStrategyOptions } from '../../utils'
+import { buildInternalWorkerChoiceStrategyOptions } from '../../utils'
import type { IPool } from '../pool'
import type { IWorker } from '../worker'
import { FairShareWorkerChoiceStrategy } from './fair-share-worker-choice-strategy'
private workerChoiceStrategy: WorkerChoiceStrategy = WorkerChoiceStrategies.ROUND_ROBIN,
private opts?: InternalWorkerChoiceStrategyOptions
) {
- this.opts = {
- ...getDefaultInternalWorkerChoiceStrategyOptions(pool.info.maxSize),
- ...this.opts
- }
+ this.opts = buildInternalWorkerChoiceStrategyOptions(
+ pool.info.maxSize,
+ this.opts
+ )
this.execute = this.execute.bind(this)
this.workerChoiceStrategies = new Map<
WorkerChoiceStrategy,
/**
* Sets the worker choice strategies in the context options.
*
+ * @param pool - The pool instance.
* @param opts - The worker choice strategy options.
*/
public setOptions (
pool: IPool<Worker, Data, Response>,
opts?: InternalWorkerChoiceStrategyOptions
): void {
- this.opts = {
- ...getDefaultInternalWorkerChoiceStrategyOptions(pool.info.maxSize),
- ...opts
- }
+ this.opts = buildInternalWorkerChoiceStrategyOptions(
+ pool.info.maxSize,
+ opts
+ )
for (const workerChoiceStrategy of this.workerChoiceStrategies.values()) {
workerChoiceStrategy.setOptions(this.opts)
}