Class FixedClusterPool<Data, Response>

A cluster pool with a fixed number of workers.

Author

Christopher Quadflieg

Since

2.0.0

Type Parameters

  • Data = unknown

    Type of data sent to the worker. This can only be structured-cloneable data.

  • Response = unknown

    Type of execution response. This can only be structured-cloneable data.

Hierarchy

Constructors

  • Constructs a new poolifier fixed cluster pool.

    Type Parameters

    • Data = unknown

    • Response = unknown

    Parameters

    • numberOfWorkers: number

      Number of workers for this pool.

    • filePath: string

      Path to an implementation of a ClusterWorker file, which can be relative or absolute.

    • opts: ClusterPoolOptions = {}

      Options for this fixed cluster pool.

    Returns FixedClusterPool<Data, Response>

Properties

emitter?: PoolEmitter

Emitter on which events can be listened to.

Events that can currently be listened to:

  • 'full': Emitted when the pool is dynamic and full.
  • 'busy': Emitted when the pool is busy.
  • 'error': Emitted when an uncaught error occurs.
  • 'taskError': Emitted when an error occurs while executing a task.
filePath: string

Path to the worker file.

numberOfWorkers: number

Number of workers that this pool should manage.

Options for this fixed cluster pool.

promiseResponseMap: Map<string, PromiseResponseWrapper<Worker, Response>> = ...

The execution response promise map.

  • key: The message id of each submitted task.
  • value: An object that contains the worker, the execution response promise resolve and reject callbacks.

When we receive a message from the worker, we get a map entry with the promise resolve/reject bound to the message id.

workerChoiceStrategyContext: WorkerChoiceStrategyContext<Worker, Data, Response>

Worker choice strategy context referencing a worker choice algorithm implementation.

workerNodes: WorkerNode<Worker, Data>[] = []

Pool worker nodes.

Accessors

  • get busy(): boolean
  • Whether the pool is busy or not.

    The pool busyness boolean status.

    Returns boolean

  • get full(): boolean
  • Whether the pool is full or not.

    The pool filling boolean status.

    Returns boolean

  • get type(): "fixed" | "dynamic"
  • Pool type.

    If it is 'dynamic', it provides the max property.

    Returns "fixed" | "dynamic"

  • get worker(): "cluster" | "thread"
  • Gets the worker type.

    Returns "cluster" | "thread"

Methods

  • Function that can be hooked up when a worker has been newly created and moved to the pool worker nodes. Can be overridden.

    Parameters

    • worker: Worker

      The newly created worker.

    Returns void

  • Executes the specified function in the worker constructor with the task data input parameter.

    Parameters

    • Optional data: Data

      The task input data for the specified worker function. This can only be structured-cloneable data.

    • Optional name: string

      The name of the worker function to execute. If not specified, the default worker function will be executed.

    Returns Promise<Response>

    Promise that will be fulfilled when the task is completed.

  • Sets the worker choice strategy in this pool.

    Parameters

    • workerChoiceStrategy: "ROUND_ROBIN" | "LEAST_USED" | "LEAST_BUSY" | "LEAST_ELU" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN" | "INTERLEAVED_WEIGHTED_ROUND_ROBIN"

      The worker choice strategy.

    • Optional workerChoiceStrategyOptions: WorkerChoiceStrategyOptions

      The worker choice strategy options.

    Returns void

  • This function is the listener registered for each worker message.

    Returns ((message) => void)

    The listener function to execute when a message is received from a worker.

      • (message): void
      • This function is the listener registered for each worker message.

        Parameters

        Returns void

        The listener function to execute when a message is received from a worker.

Generated using TypeDoc