X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=docs%2Fclasses%2FDynamicClusterPool.html;h=17b4b9e076d2b55bc646157ea2be7504f4116b1f;hb=224d008191f52fa20b93e1ba67919569f8d6e315;hp=03a403799d5f5c7567ae7bde8e2bc5ee8a3b5227;hpb=96f3886ad347290d2072643379e9bfb495d905c3;p=poolifier.git diff --git a/docs/classes/DynamicClusterPool.html b/docs/classes/DynamicClusterPool.html index 03a40379..17b4b9e0 100644 --- a/docs/classes/DynamicClusterPool.html +++ b/docs/classes/DynamicClusterPool.html @@ -1,11 +1,11 @@ -DynamicClusterPool | poolifier - v4.0.7

Class DynamicClusterPool<Data, Response>

A cluster pool with a dynamic number of workers, but a guaranteed minimum number of workers.

+DynamicClusterPool | poolifier - v4.0.15

Class DynamicClusterPool<Data, Response>

A cluster pool with a dynamic number of workers, but a guaranteed minimum number of workers.

This cluster pool creates new workers when the others are busy, up to the maximum number of workers. -When the maximum number of workers is reached and workers are busy, an event is emitted. If you want to listen to this event, use the pool's emitter.

-

Author

Christopher Quadflieg

-

Since

2.0.0

+When the maximum number of workers is reached and workers are busy, an event is emitted. If you want to listen to this event, use the pool's emitter.

+

Christopher Quadflieg

+

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 (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

emitter? filePath maximumNumberOfWorkers? @@ -18,9 +18,7 @@ When the maximum number of workers is reached and workers are busy, an event is empty full info -ready type -utilization worker

Methods

addTaskFunction afterTaskExecutionHook @@ -41,6 +39,7 @@ When the maximum number of workers is reached and workers are busy, an event is internalBusy isMain listTaskFunctionsProperties +mapExecute registerOnceWorkerMessageListener registerWorkerMessageListener removeTaskFunction @@ -54,90 +53,109 @@ When the maximum number of workers is reached and workers are busy, an event is shallCreateDynamicWorker start workerMessageListener -

Constructors

Constructors

Properties

emitter?: EventEmitterAsyncResource

Pool event emitter integrated with async resource. +

Returns DynamicClusterPool<Data, Response>

Properties

emitter?: EventEmitterAsyncResource

Pool event emitter integrated with async resource. The async tracking tooling identifier is poolifier:<PoolType>-<WorkerType>-pool.

Events that can currently be listened to:

    -
  • 'ready': Emitted when the number of workers created in the pool has reached the minimum size expected and are ready. If the pool is dynamic with a minimum number of workers is set to zero, this event is emitted when at least one dynamic worker is ready.
  • -
  • 'busy': Emitted when the number of workers created in the pool has reached the maximum size expected and are executing concurrently their tasks quota.
  • -
  • 'full': Emitted when the pool is dynamic and the number of workers created has reached the maximum size expected.
  • -
  • 'empty': Emitted when the pool is dynamic with a minimum number of workers set to zero and the number of workers has reached the minimum size expected.
  • -
  • 'destroy': Emitted when the pool is destroyed.
  • -
  • 'error': Emitted when an uncaught error occurs.
  • -
  • 'taskError': Emitted when an error occurs while executing a task.
  • -
  • 'backPressure': Emitted when all worker nodes have back pressure (i.e. their tasks queue is full: queue size >= maximum queue size).
  • +
  • 'ready': Emitted when the number of workers created in the pool has reached the minimum size expected and are ready. If the pool is dynamic with a minimum number of workers is set to zero, this event is emitted when at least one dynamic worker is ready.
  • +
  • 'busy': Emitted when the number of workers created in the pool has reached the maximum size expected and are executing concurrently their tasks quota.
  • +
  • 'full': Emitted when the pool is dynamic and the number of workers created has reached the maximum size expected.
  • +
  • 'empty': Emitted when the pool is dynamic with a minimum number of workers set to zero and the number of workers has reached the minimum size expected.
  • +
  • 'destroy': Emitted when the pool is destroyed.
  • +
  • 'error': Emitted when an uncaught error occurs.
  • +
  • 'taskError': Emitted when an error occurs while executing a task.
  • +
  • 'backPressure': Emitted when all worker nodes have back pressure (i.e. their tasks queue is full: queue size >= maximum queue size).
-
filePath: string

Path to the worker file.

-
maximumNumberOfWorkers?: number

Maximum number of workers that this pool manages.

-
minimumNumberOfWorkers: number

Minimum number of workers that this pool manages.

-
opts: PoolOptions<Worker>

Options for the pool.

-
promiseResponseMap: Map<`${string}-${string}-${string}-${string}-${string}`, PromiseResponseWrapper<Response>> = ...

The task execution response promise map:

+
filePath: string

Path to the worker file.

+
maximumNumberOfWorkers?: number

Maximum number of workers that this pool manages.

+
minimumNumberOfWorkers: number

Minimum number of workers that this pool manages.

+
opts: PoolOptions<Worker>

Options for the pool.

+
promiseResponseMap: Map<`${string}-${string}-${string}-${string}-${string}`, PromiseResponseWrapper<Response>> = ...

The task execution response promise map:

  • key: The message id of each submitted task.
  • -
  • value: An object that contains task's worker node key, execution response promise resolve and reject callbacks, async resource.
  • +
  • value: An object that contains task's worker node key, execution response promise resolve and reject callbacks, async resource.

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

-
workerChoiceStrategiesContext?: WorkerChoiceStrategiesContext<Worker, Data, Response>

Worker choice strategies context referencing worker choice algorithms implementation.

-
workerNodes: IWorkerNode<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"
  • The pool type.

    -

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

    -

    Returns "fixed" | "dynamic"

  • get utilization(): number
  • The approximate pool utilization.

    -

    Returns number

    The pool utilization.

    -
  • get worker(): "thread" | "cluster"
  • The worker type.

    -

    Returns "thread" | "cluster"

Methods

workerChoiceStrategiesContext?: WorkerChoiceStrategiesContext<Worker, Data, Response>

Worker choice strategies context referencing worker choice algorithms implementation.

+
workerNodes: IWorkerNode<Worker, Data>[] = []

Pool worker nodes.

+

Accessors

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

    +

    Returns boolean

    The pool busyness boolean status.

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

    +

    Returns boolean

    The pool emptiness boolean status.

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

    +

    Returns boolean

    The pool fullness boolean status.

    +
  • get type(): "fixed" | "dynamic"
  • The pool type.

    +

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

    +

    Returns "fixed" | "dynamic"

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

    +

    Returns "thread" | "cluster"

Methods

  • Method hooked up after a worker node has been newly created. +

Returns void

Returns void

Returns void

Returns void

Returns Promise<void>

Returns void

Returns void

Returns void

Returns void

\ No newline at end of file +
\ No newline at end of file