Class FixedThreadPool<Data, Response>

A thread pool with a fixed number of threads.

It is possible to perform tasks in sync or asynchronous mode as you prefer.

This pool selects the threads in a round robin fashion.

Author

Alessandro Pio Ardizio

Since

0.0.1

Type Parameters

  • Data = unknown

    Type of data sent to the worker. This can only be serializable data.

  • Response = unknown

    Type of response of execution. This can only be serializable data.

Hierarchy

Constructors

Properties

emitter?: PoolEmitter

{@inheritDoc}

filePath: string

Path to the worker-file.

numberOfWorkers: number

Number of workers that this pool should manage.

Options for the pool.

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

The promise response map.

  • key: The message id of each submitted task.
  • value: An object that contains the worker, the 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.

workerChoiceStrategyContext: WorkerChoiceStrategyContext<ThreadWorkerWithMessageChannel, Data, Response>

Worker choice strategy instance implementing the worker choice algorithm.

Default to a strategy implementing a round robin algorithm.

workers: WorkerType<ThreadWorkerWithMessageChannel>[] = []

{@inheritDoc}

Accessors

  • get numberOfRunningTasks(): number
  • {@inheritDoc}

    Returns number

Methods

  • Hook executed before the worker task promise resolution. Can be overridden.

    Parameters

    • workerKey: number

      The worker key.

    Returns void

  • {@inheritDoc}

    Parameters

    • data: Data

    Returns Promise<Response>

  • {@inheritDoc}

    Returns number | false

  • {@inheritDoc}

    Type Parameters

    • Message

    Parameters

    • messageChannel: ThreadWorkerWithMessageChannel
    • listener: ((message: MessageValue<Message, unknown>) => void)
        • (message: MessageValue<Message, unknown>): void
        • Parameters

          • message: MessageValue<Message, unknown>

          Returns void

    Returns void

  • {@inheritDoc}

    Parameters

    • workerChoiceStrategy: "ROUND_ROBIN" | "LESS_USED" | "LESS_BUSY" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN"

    Returns void

  • Setup hook that can be overridden by a Poolifier pool implementation to run code before workers are created in the abstract constructor.

    Returns void

  • This function is the listener registered for each worker.

    Returns

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

    Returns ((message: MessageValue<Response, unknown>) => void)

      • (message: MessageValue<Response, unknown>): void
      • This function is the listener registered for each worker.

        Returns

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

        Parameters

        • message: MessageValue<Response, unknown>

        Returns void

Generated using TypeDoc