X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=docs%2Fclasses%2FDynamicClusterPool.html;h=69332326c3ed0716e5a7702c1bb4df5c383dd7fe;hb=be55f2ca8b4792c645c4aaee38f0e3471a1efcb2;hp=1767983b04add9aa7d5360d287e04c72716bb93a;hpb=e82ac13a1f1af55b7668013195a12f9e3e017205;p=poolifier.git diff --git a/docs/classes/DynamicClusterPool.html b/docs/classes/DynamicClusterPool.html index 1767983b..69332326 100644 --- a/docs/classes/DynamicClusterPool.html +++ b/docs/classes/DynamicClusterPool.html @@ -1,63 +1,12 @@ -
Protected
workerThis method is the message listener registered on each worker.
+Generated using TypeDoc
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 - v3.0.5Class 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
- +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
-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
Index
Constructors
Properties
Accessors
-Accessors
Methods
-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. +
Constructors
constructor
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. The async tracking tooling identifier is
poolifier:<PoolType>-<WorkerType>-pool
.Events that can currently be listened to:
@@ -175,981 +73,109 @@ The async tracking tooling identifier is
-poolifier:<PoolType>-<Wo
'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
Readonly
maxMaximum number of workers that can be created by this pool.
+Protected
Readonly
numberNumber of workers that this pool should manage.
+Protected
Readonly
optsOptions for this fixed cluster 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.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.
+Protected
workerWorker choice strategy context referencing a worker choice algorithm implementation.
+Readonly
Internal
workerPool worker nodes.
+Accessors
Protected
busyWhether 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.
+Returns boolean
Protected
fullWhether 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.
+Returns boolean
info
Pool information.
+Returns PoolInfo
Protected
maxThe pool maximum size.
+Returns number
Protected
minThe pool minimum size.
+Returns number
Private
readyThe pool readiness boolean status.
+Returns boolean
Protected
typeThe 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. +
Returns "fixed" | "dynamic"
Private
utilizationThe approximate pool utilization.
+Returns number
The pool utilization.
+Protected
workerThe worker type.
+Returns "thread" | "cluster"
Methods
add Task Function
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.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
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
--
-
Method hooked up after a worker node has been newly created. +
Parameters
workerNodeKey: number
The worker node key.
+message: MessageValue<Response, unknown>
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
--
-
Hook executed before the worker task execution. +
Parameters
workerNodeKey: number
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
--
-
Setup hook to execute code before worker nodes are created in the abstract constructor. +
Parameters
workerNodeKey: number
The worker node key.
+task: Task<Data>
The task to execute.
+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
createCreates a new worker.
+Returns Worker
Newly created worker.
+Protected
deregisterDeregisters 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.
+Parameters
message: MessageValue<Message, unknown>
Returns void
Returns void
destroy
Terminates all workers in this pool.
+Returns Promise<void>
Protected
destroyTerminates the worker node given its worker node key.
+Parameters
workerNodeKey: number
The worker node key.
+Returns Promise<void>
enable Tasks Queue
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
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.
+Protected
flagParameters
workerNodeKey: number
Returns void
Protected
flushParameters
workerNodeKey: number
Returns void
Protected
getGets the worker information given its worker node key.
+Parameters
workerNodeKey: number
The worker node key.
+Returns WorkerInfo
The worker information.
+has Task Function
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
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.Protected
internalWhether worker nodes are executing concurrently their tasks quota or not.
+Returns boolean
Worker nodes busyness boolean status.
+Protected
isShould return whether the worker is the main worker or not.
+Returns boolean
list Task Function Names
Lists the names of task function available in this pool.
+Returns string[]
The names of task function available in this pool.
+Protected
registerRegisters 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.
+Parameters
message: MessageValue<Message, unknown>
Returns void
Returns void
Protected
registerRegisters 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.
+Parameters
message: MessageValue<Message, unknown>
Returns void
Returns void
remove Task Function
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.Protected
sendParameters
workerNodeKey: number
Returns Promise<void>
Protected
sendSends the startup message to worker given its worker node key.
+Parameters
workerNodeKey: number
The worker node key.
+Returns void
Protected
sendSends 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
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
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
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
Sets the worker choice strategy options in this pool.
+Parameters
workerChoiceStrategyOptions: WorkerChoiceStrategyOptions
The worker choice strategy options.
+Returns void
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