X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=docs%2Fclasses%2FDynamicClusterPool.html;h=17b4b9e076d2b55bc646157ea2be7504f4116b1f;hb=224d008191f52fa20b93e1ba67919569f8d6e315;hp=f90861f88f99e41db02dd3e4b6ce88d8c8f91aa1;hpb=1ed7fb6c99f2fcb5f319d9c1fa2aefc5434f82e4;p=poolifier.git diff --git a/docs/classes/DynamicClusterPool.html b/docs/classes/DynamicClusterPool.html index f90861f8..17b4b9e0 100644 --- a/docs/classes/DynamicClusterPool.html +++ b/docs/classes/DynamicClusterPool.html @@ -1,1155 +1,161 @@ -
Protected
shallProtected
Readonly
workerThis method is the message listener registered on each worker.
+The message received from the worker.
+
A cluster pool with a dynamic number of workers, but a guaranteed minimum number of workers.
+- Preparing search index...
- The search index is not available
poolifier - v4.0.15Class 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
-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
--- FixedClusterPool<Data, Response>
-
-- DynamicClusterPool
-
-Index
Constructors
-Properties
-Accessors
-Methods
-Constructors
-constructor
--- new
Dynamic Cluster Pool<Data, Response>(min, max, filePath, opts?): DynamicClusterPool<Data, Response>
--
-
-
-
-
-
-
Constructs a new poolifier dynamic cluster pool.
-Type Parameters
---
-
--
-
Data = unknown
Response = unknown
Parameters
---
-
-
--
-
-
--
-
-
--
-
-
min: number
-Minimum number of workers which are always active.
-max: number
-Maximum number of workers that can be created by this pool.
-filePath: string
-Path to an implementation of a
-ClusterWorker
file, which can be relative or absolute.opts: ClusterPoolOptions = {}
-Options for this dynamic cluster pool.
-Returns DynamicClusterPool<Data, Response>
-Properties
-
-Optional
emitterEvent emitter integrated with async resource on which events can be listened to. +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
+Type Parameters
Type of data sent to the worker. This can only be structured-cloneable data.
+Type of execution response. This can only be structured-cloneable data.
+Hierarchy (view full)
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
Constructs a new poolifier dynamic cluster pool.
+Type Parameters
Parameters
Minimum number of workers which are always active.
+Maximum number of workers that can be created by this pool.
+Path to an implementation of a
+ClusterWorker
file, which can be relative or absolute.Options for this dynamic cluster pool.
+Returns DynamicClusterPool<Data, Response>
Properties
Optional
emitterPool 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.'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.'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). Path
-Protected
Readonly
filePath to the worker file.
-
-Protected
Readonly
maxMaximum number of workers that can be created by this pool.
- Of Workers
-Protected
Readonly
numberNumber of workers that this pool should manage.
-
-Protected
Readonly
optsOptions for this fixed cluster pool.
- Response Map
-Protected
promiseThe task execution response promise map:
+Protected
Readonly
filePath to the worker file.
+Protected
Optional
Readonly
maximumMaximum number of workers that this pool manages.
+Protected
Readonly
minimumMinimum number of workers that this pool manages.
+Protected
Readonly
optsOptions for the pool.
+Protected
promiseThe task 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.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.
- Choice Strategy Context
-Protected
workerWorker choice strategy context referencing a worker choice algorithm implementation.
- Nodes
-Readonly
Internal
workerPool worker nodes.
-Accessors
-
-Protected
busy-- get busy(): boolean
--
-
-
Whether the pool is busy or not.
-The pool busyness boolean status.
-Returns boolean
-
-Protected
full-- get full(): boolean
--
-
-
Whether the pool is full or not.
-The pool filling boolean status.
-Returns boolean
-info
--- get info(): PoolInfo
--
-
-
Pool information.
-Returns PoolInfo
- Size
-Protected
max-- get maxSize(): number
--
-
-
The pool maximum size.
-Returns number
- Size
-Protected
min-- get minSize(): number
--
-
-
The pool minimum size.
-Returns number
-
-Private
ready-- get ready(): boolean
--
-
-
The pool readiness boolean status.
-Returns boolean
-
-Protected
type-- get type(): "fixed" | "dynamic"
--
-
-
The pool type.
-If it is
-'dynamic'
, it provides themax
property.Returns "fixed" | "dynamic"
-
-Private
utilization-- get utilization(): number
--
-
-
The approximate pool utilization.
-Returns number
The pool utilization.
- -
-Protected
worker-- get worker(): "thread" | "cluster"
--
-
-
The worker type.
-Returns "thread" | "cluster"
-Methods
-add Task Function
--- add
Task Function(name, fn): Promise<boolean>
--
-
-
-
-
-
Adds a task function to this pool. -If a task function with the same name already exists, it will be overwritten.
-Parameters
---
-
-
--
-
-
name: string
-The name of the task function.
-fn: TaskFunction<Data, Response>
-The task function.
-Returns Promise<boolean>
- -true
if the task function was added,false
otherwise.Throws
https://nodejs.org/api/errors.html#class-typeerror If the
- -name
parameter is not a string or an empty string.Throws
https://nodejs.org/api/errors.html#class-typeerror If the
-fn
parameter is not a function. Task Execution Hook
-Protected
after-- after
Task Execution Hook(workerNodeKey, message): void
--
-
Hook executed after the worker task execution. +
Protected
Optional
workerWorker choice strategies context referencing worker choice algorithms implementation.
+Readonly
Internal
workerPool worker nodes.
+Accessors
Protected
busyWhether the pool is busy or not.
+Returns boolean
The pool busyness boolean status.
+Protected
emptyWhether the pool is empty or not.
+Returns boolean
The pool emptiness boolean status.
+Protected
fullWhether the pool is full or not.
+Returns boolean
The pool fullness boolean status.
+info
Pool information.
+Returns PoolInfo
Protected
typeThe pool type.
+If it is
+'dynamic'
, it provides themax
property.Returns "fixed" | "dynamic"
Protected
workerThe worker type.
+Returns "thread" | "cluster"
Methods
add Task Function
Parameters
The name of the task function.
+The task function.
+Returns Promise<boolean>
+true
if the task function was added,false
otherwise.Protected
afterHook executed after the worker task execution. Can be overridden.
-Parameters
---
-
-
--
-
-
workerNodeKey: number
-The worker node key.
-message: MessageValue<Response, unknown>
-The received message.
-Returns void
- Worker Node Setup
-Protected
after-- after
Worker Node Setup(workerNodeKey): void
--
-
- workerNodeKey: number
- message: MessageValue<Response, unknown>
Method hooked up after a worker node has been newly created. +
Parameters
The worker node key.
+The received message.
+Returns void
Protected
afterMethod hooked up after a worker node has been newly created. Can be overridden.
-Parameters
---
-
-
workerNodeKey: number
-The newly created worker node key.
-Returns void
- Task Execution Hook
-Protected
before-- before
Task Execution Hook(workerNodeKey, task): void
--
-
- workerNodeKey: number
Hook executed before the worker task execution. +
Parameters
The newly created worker node key.
+Returns void
Protected
beforeHook executed before the worker task execution. Can be overridden.
-Parameters
---
-
-
--
-
-
workerNodeKey: number
-The worker node key.
-task: Task<Data>
-The task to execute.
-Returns void
- And Setup Dynamic Worker Node
-Protected
create-- create
And Setup Dynamic Worker Node(): number
--
-
-
Creates a new, completely set up dynamic worker node.
-Returns number
New, completely set up dynamic worker node key.
- - And Setup Worker Node
-Protected
create-- create
And Setup Worker Node(): number
--
-
-
Creates a new, completely set up worker node.
-Returns number
New, completely set up worker node key.
- - Worker
-Protected
create-- create
Worker(): Worker
--
-
-
Creates a new worker.
-Returns Worker
Newly created worker.
- - Worker Message Listener
-Protected
deregister-- deregister
Worker Message Listener<Message>(workerNodeKey, listener): void
--
-
-
-
-
-
-
Deregisters a listener callback on the worker given its worker node key.
-Type Parameters
---
-
Message
Parameters
---
-
-
--
-
-
-
workerNodeKey: number
-The worker node key.
-listener: ((message) => void)
-The message listener callback.
---
-
-- (message): void
--
-
-
-
Parameters
---
-
message: MessageValue<Message, unknown>
Returns void
Returns void
-destroy
--- destroy(): Promise<void>
--
-
-
Terminates all workers in this pool.
-Returns Promise<void>
- Worker Node
-Protected
destroy-- destroy
Worker Node(workerNodeKey): Promise<void>
--
-
-
-
-
Terminates the worker node given its worker node key.
-Parameters
---
-
-
workerNodeKey: number
-The worker node key.
-Returns Promise<void>
-enable Tasks Queue
--- enable
Tasks Queue(enable, tasksQueueOptions?): void
--
-
-
-
-
Enables/disables the worker node tasks queue in this pool.
-Parameters
---
-
-
--
-
-
enable: boolean
-Whether to enable or disable the worker node tasks queue.
-
-Optional
tasksQueueOptions: TasksQueueOptionsThe worker node tasks queue options.
-Returns void
-execute
--- execute(data?, name?, transferList?): Promise<Response>
--
-
-
-
-
Executes the specified function in the worker constructor with the task data input parameter.
-Parameters
---
-
-
--
-
-
--
-
-
-Optional
data: DataThe optional task input data for the specified task function. This can only be structured-cloneable data.
-
-Optional
name: stringThe optional name of the task function to execute. If not specified, the default task function will be executed.
-
-Optional
transferList: TransferListItem[]An optional array of transferable objects to transfer ownership of. Ownership of the transferred objects is given to the pool's worker_threads worker and they should not be used in the main thread afterwards.
-Returns Promise<Response>
Promise that will be fulfilled when the task is completed.
- - Worker Node As Not Ready
-Protected
flag-- flag
Worker Node As Not Ready(workerNodeKey): void
--
-
-
-
Parameters
---
-
workerNodeKey: number
Returns void
Tasks Queue
-Protected
flush-- flush
Tasks Queue(workerNodeKey): void
--
-
-
-
Parameters
---
-
workerNodeKey: number
Returns void
Worker Info
-Protected
get-- get
Worker Info(workerNodeKey): WorkerInfo
--
-
-
-
-
Gets the worker information given its worker node key.
-Parameters
---
-
-
workerNodeKey: number
-The worker node key.
-Returns WorkerInfo
The worker information.
- -has Task Function
--- has
Task Function(name): boolean
--
-
-
-
-
Whether the specified task function exists in this pool.
-Parameters
---
-
-
name: string
-The name of the task function.
-Returns boolean
- -true
if the task function exists,false
otherwise.has Worker Node Back Pressure
--- has
Worker Node Back Pressure(workerNodeKey): boolean
-
-
-
-
Internal
-Whether the worker node has back pressure (i.e. its tasks queue is full).
-Parameters
---
-
-
workerNodeKey: number
-The worker node key.
-Returns boolean
- -true
if the worker node has back pressure,false
otherwise. Busy
-Protected
internal-- internal
Busy(): boolean
--
-
-
Whether worker nodes are executing concurrently their tasks quota or not.
-Returns boolean
Worker nodes busyness boolean status.
- - Main
-Protected
is-- is
Main(): boolean
--
-
-
Should return whether the worker is the main worker or not.
-Returns boolean
-list Task Function Names
--- list
Task Function Names(): string[]
--
-
-
Lists the names of task function available in this pool.
-Returns string[]
The names of task function available in this pool.
- - Once Worker Message Listener
-Protected
register-- register
Once Worker Message Listener<Message>(workerNodeKey, listener): void
--
-
-
-
-
-
-
Registers once a listener callback on the worker given its worker node key.
-Type Parameters
---
-
Message
Parameters
---
-
-
--
-
-
-
workerNodeKey: number
-The worker node key.
-listener: ((message) => void)
-The message listener callback.
---
-
-- (message): void
--
-
-
-
Parameters
---
-
message: MessageValue<Message, unknown>
Returns void
Returns void
- Worker Message Listener
-Protected
register-- register
Worker Message Listener<Message>(workerNodeKey, listener): void
--
-
-
-
-
-
-
Registers a listener callback on the worker given its worker node key.
-Type Parameters
---
-
Message
Parameters
---
-
-
--
-
-
-
workerNodeKey: number
-The worker node key.
-listener: ((message) => void)
-The message listener callback.
---
-
-- (message): void
--
-
-
-
Parameters
---
-
message: MessageValue<Message, unknown>
Returns void
Returns void
-remove Task Function
--- remove
Task Function(name): Promise<boolean>
--
-
-
-
-
Removes a task function from this pool.
-Parameters
---
-
-
name: string
-The name of the task function.
-Returns Promise<boolean>
- -true
if the task function was removed,false
otherwise. Kill Message To Worker
-Protected
send-- send
Kill Message To Worker(workerNodeKey): Promise<void>
--
-
-
-
Parameters
---
-
workerNodeKey: number
Returns Promise<void>
Startup Message To Worker
-Protected
send-- send
Startup Message To Worker(workerNodeKey): void
--
-
-
-
-
Sends the startup message to worker given its worker node key.
-Parameters
---
-
-
workerNodeKey: number
-The worker node key.
-Returns void
- To Worker
-Protected
send-- send
To Worker(workerNodeKey, message): void
--
-
-
-
-
Sends a message to worker given its worker node key.
-Parameters
---
-
-
--
-
-
workerNodeKey: number
-The worker node key.
-message: MessageValue<Data, unknown>
-The message.
-Returns void
-set Default Task Function
--- set
Default Task Function(name): Promise<boolean>
--
-
-
-
-
Sets the default task function in this pool.
-Parameters
---
-
-
name: string
-The name of the task function.
-Returns Promise<boolean>
- -true
if the default task function was set,false
otherwise.set Tasks Queue Options
--- set
Tasks Queue Options(tasksQueueOptions): void
--
-
-
-
-
Sets the worker node tasks queue options in this pool.
-Parameters
---
-
-
tasksQueueOptions: TasksQueueOptions
-The worker node tasks queue options.
-Returns void
-set Worker Choice Strategy
--- set
Worker Choice Strategy(workerChoiceStrategy, workerChoiceStrategyOptions?): void
--
-
-
-
-
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: WorkerChoiceStrategyOptionsThe worker choice strategy options.
-Returns void
-set Worker Choice Strategy Options
--- set
Worker Choice Strategy Options(workerChoiceStrategyOptions): void
--
-
-
-
-
Sets the worker choice strategy options in this pool.
-Parameters
---
-
-
workerChoiceStrategyOptions: WorkerChoiceStrategyOptions
-The worker choice strategy options.
-Returns void
- Hook
-Protected
setup-- setup
Hook(): void
--
-
- workerNodeKey: number
- task: Task<Data>
Setup hook to execute code before worker nodes are created in the abstract constructor. +
Parameters
The worker node key.
+The task to execute.
+Returns void
Protected
checkEmits dynamic worker creation events.
+Returns void
Protected
createCreates a new, completely set up dynamic worker node.
+Returns number
New, completely set up dynamic worker node key.
+Protected
createCreates a new, completely set up worker node.
+Returns number
New, completely set up worker node key.
+Protected
deregisterDeregisters a listener callback on the worker given its worker node key.
+Type Parameters
Parameters
The worker node key.
+The message listener callback.
+Parameters
Returns void
Returns void
destroy
Returns Promise<void>
Inherit Doc
Protected
destroyTerminates the worker node given its worker node key.
+Parameters
The worker node key.
+Returns Promise<void>
enable Tasks Queue
Parameters
Optional
tasksQueueOptions: TasksQueueOptionsReturns void
Inherit Doc
execute
Parameters
Optional
data: DataThe optional task input data for the specified task function. This can only be structured-cloneable data.
+Optional
name: stringThe optional name of the task function to execute. If not specified, the default task function will be executed.
+Optional
transferList: readonly TransferListItem[]An optional array of transferable objects to transfer ownership of. Ownership of the transferred objects is given to the chosen pool's worker_threads worker and they should not be used in the main thread afterwards.
+Returns Promise<Response>
Promise with a task function response that will be fulfilled when the task is completed.
+Protected
flagParameters
Returns void
Protected
flushParameters
Returns number
Protected
getGets the worker information given its worker node key.
+Parameters
The worker node key.
+Returns undefined | WorkerInfo
The worker information.
+has Task Function
Parameters
The name of the task function.
+Returns boolean
+true
if the task function exists,false
otherwise.Protected
internalWhether worker nodes are executing concurrently their tasks quota or not.
+Returns boolean
Worker nodes busyness boolean status.
+Protected
isReturns whether the worker is the main worker or not.
+Returns boolean
+true
if the worker is the main worker,false
otherwise.list Task Functions Properties
Returns TaskFunctionProperties[]
The properties of task functions available in this pool.
+map Execute
Parameters
The tasks iterable input data for the specified task function. This can only be an iterable of structured-cloneable data.
+Optional
name: stringThe optional name of the task function to execute. If not specified, the default task function will be executed.
+Optional
transferList: readonly TransferListItem[]An optional array of transferable objects to transfer ownership of. Ownership of the transferred objects is given to the chosen pool's worker_threads worker and they should not be used in the main thread afterwards.
+Returns Promise<Response[]>
Promise with an array of task function responses that will be fulfilled when the tasks are completed.
+Protected
registerRegisters once a listener callback on the worker given its worker node key.
+Type Parameters
Parameters
The worker node key.
+The message listener callback.
+Parameters
Returns void
Returns void
Protected
registerRegisters a listener callback on the worker given its worker node key.
+Type Parameters
Parameters
The worker node key.
+The message listener callback.
+Parameters
Returns void
Returns void
remove Task Function
Parameters
The name of the task function.
+Returns Promise<boolean>
+true
if the task function was removed,false
otherwise.Protected
sendSends the startup message to worker given its worker node key.
+Parameters
The worker node key.
+Returns void
Protected
sendSends a message to worker given its worker node key.
+Parameters
The worker node key.
+The message.
+Returns void
set Default Task Function
Parameters
The name of the task function.
+Returns Promise<boolean>
+true
if the default task function was set,false
otherwise.set Tasks Queue Options
Parameters
Returns void
Inherit Doc
set Worker Choice Strategy
Parameters
    | "ROUND_ROBIN"
    | "LEAST_USED"
    | "LEAST_BUSY"
    | "LEAST_ELU"
    | "FAIR_SHARE"
    | "WEIGHTED_ROUND_ROBIN"
    | "INTERLEAVED_WEIGHTED_ROUND_ROBIN"
Optional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsReturns void
Inherit Doc
set Worker Choice Strategy Options
Parameters
The worker choice strategy options.
+Returns boolean
+true
if the worker choice strategy options were set,false
otherwise.Protected
setupSetup hook to execute code before worker nodes are created in the abstract constructor. Can be overridden.
-Returns void
-start
--- start(): void
--
-
-
Starts the minimum number of workers in this pool.
-Returns void
- Message Listener
-Protected
worker-- worker
Message Listener(message): void
--
-
-
-
-
This method is the message listener registered on each worker.
-Parameters
---
-
message: MessageValue<Response, unknown>
Returns void
--
-Settings
Member Visibility
Theme
-
-On This Page
-- constructor
-- emitter
-- file
Path
-- max
-- number
Of Workers
-- opts
-- promise
Response Map
-- worker
Choice Strategy Context
-- worker
Nodes
-- busy
-- full
-- info
-- max
Size
-- min
Size
-- ready
-- type
-- utilization
-- worker
-- add
Task Function
-- after
Task Execution Hook
-- after
Worker Node Setup
-- before
Task Execution Hook
-- create
And Setup Dynamic Worker Node
-- create
And Setup Worker Node
-- create
Worker
-- deregister
Worker Message Listener
-- destroy
-- destroy
Worker Node
-- enable
Tasks Queue
-- execute
-- flag
Worker Node As Not Ready
-- flush
Tasks Queue
-- get
Worker Info
-- has
Task Function
-- has
Worker Node Back Pressure
-- internal
Busy
-- is
Main
-- list
Task Function Names
-- register
Once Worker Message Listener
-- register
Worker Message Listener
-- remove
Task Function
-- send
Kill Message To Worker
-- send
Startup Message To Worker
-- send
To Worker
-- set
Default Task Function
-- set
Tasks Queue Options
-- set
Worker Choice Strategy
-- set
Worker Choice Strategy Options
-- setup
Hook
-- start
-- worker
Message Listener
Generated using TypeDoc
Returns void