X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=docs%2Fclasses%2FDynamicThreadPool.html;h=f1bad270bcf4a51669e79620a5430550c9b48d9d;hb=0d64fd531460a553940a8e3b2912be059c9cdf48;hp=18d495876688ccf2ac6ca69e0bc4fc1345be98bb;hpb=65632d7d60a45877ab5a8fd02dae3d68eb9853db;p=poolifier.git diff --git a/docs/classes/DynamicThreadPool.html b/docs/classes/DynamicThreadPool.html index 18d49587..5fc8e0ba 100644 --- a/docs/classes/DynamicThreadPool.html +++ b/docs/classes/DynamicThreadPool.html @@ -1,736 +1,175 @@ -
Protected
beforeProtected
checkProtected
createProtected
createProtected
deregisterDeregisters a listener callback on the worker given its worker node key.
+The worker node key.
+The message listener callback.
+Protected
destroyEnables/disables the worker node tasks queue in this pool.
+Whether to enable or disable the worker node tasks queue.
+Optional
tasksQueueOptions: TasksQueueOptionsThe worker node tasks queue options.
+Executes the specified function in the worker constructor with the task data input parameter.
+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 chosen pool's worker_threads worker and they should not be used in the main thread afterwards.
+Promise that will be fulfilled when the task is completed.
+Protected
flagProtected
flushProtected
getGets the worker information given its worker node key.
+The worker node key.
+The worker information.
+Protected
internalProtected
isProtected
registerRegisters once a listener callback on the worker given its worker node key.
+The worker node key.
+The message listener callback.
+Protected
registerRegisters a listener callback on the worker given its worker node key.
+The worker node key.
+The message listener callback.
+Protected
sendProtected
sendSends a message to worker given its worker node key.
+The worker node key.
+The message.
+Optional
transferList: TransferListItem[]The optional array of transferable objects.
+Sets the worker node tasks queue options in this pool.
+The worker node tasks queue options.
+Sets the worker choice strategy in this pool.
+The worker choice strategy.
+Optional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsThe worker choice strategy options.
+Sets the worker choice strategy options in this pool.
+The worker choice strategy options.
+Protected
setupProtected
shallProtected
Readonly
workerThis method is the message listener registered on each worker.
+Generated using TypeDoc
A thread pool with a dynamic number of threads, but a guaranteed minimum number of threads.
+- Preparing search index...
- The search index is not available
poolifier - v3.1.15Class DynamicThreadPool<Data, Response>
A thread pool with a dynamic number of threads, but a guaranteed minimum number of threads.
This thread pool creates new threads when the others are busy, up to the maximum number of threads. When the maximum number of threads is reached and workers are busy, an event is emitted. If you want to listen to this event, use the pool's
- -emitter
.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 execution response. This can only be serializable data.
-Hierarchy
--- FixedThreadPool<Data, Response>
-
-- DynamicThreadPool
-
-Index
Constructors
-Properties
-Accessors
-Methods
-Constructors
-constructor
--- new
Dynamic Thread Pool<Data, Response>(min: number, max: number, filePath: string, opts?: PoolOptions<ThreadWorkerWithMessageChannel>): DynamicThreadPool<Data, Response>
--
-
-
-
-
-
-
Constructs a new poolifier dynamic thread pool.
-Type Parameters
---
-
--
-
Data = unknown
Response = unknown
Parameters
---
-
--
-
--
-
--
-
min: number
-Minimum number of threads which are always active.
-max: number
-Maximum number of threads that can be created by this pool.
-filePath: string
-Path to an implementation of a
-ThreadWorker
file, which can be relative or absolute.opts: PoolOptions<ThreadWorkerWithMessageChannel> = {}
-Options for this dynamic thread pool.
-Returns DynamicThreadPool<Data, Response>
Properties
-
-Optional
Readonly
emitterEmitter on which events can be listened to.
+Author
Alessandro Pio Ardizio
+Since
0.0.1
+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)
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
Constructs a new poolifier dynamic thread pool.
+Type Parameters
Data = unknown
Response = unknown
Parameters
min: number
Minimum number of threads which are always active.
+max: number
Maximum number of threads that can be created by this pool.
+filePath: string
Path to an implementation of a
+ThreadWorker
file, which can be relative or absolute.opts: ThreadPoolOptions = {}
Options for this dynamic thread pool.
+Returns DynamicThreadPool<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:
-
-
+
+
+
+
+
+
+
-'full'
: Emitted when the pool is dynamic and full.'busy'
: Emitted when the pool is busy.'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). Path
-Readonly
filePath to the worker file.
-
-Readonly
maxMaximum number of threads that can be created by this pool.
- Of Workers
-Readonly
numberNumber of workers that this pool should manage.
-
-Readonly
optsOptions for the pool.
- Response Map
-Protected
promiseThe 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.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.
-Default to a round robin algorithm.
- Nodes
-Readonly
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
Of Queued Tasks
-Private
number-- get numberOfQueuedTasks(): number
--
-
-
Number of tasks queued in the pool.
-Returns number
Of Running Tasks
-Private
number-- get numberOfRunningTasks(): number
--
-
-
Number of tasks running in the pool.
-Returns number
type
--- get type(): PoolType
--
-
Pool type.
+Returns boolean
info
Pool information.
+Returns PoolInfo
Private
readyThe pool readiness boolean status.
+Returns boolean
Protected
typeThe pool type.
If it is
-'dynamic'
, it provides themax
property.Returns PoolType
Methods
- Task Execution Hook
-Protected
after-- after
Task Execution Hook(worker: ThreadWorkerWithMessageChannel, message: MessageValue<Response, unknown>): void
--
-
Hook executed after the worker task execution. +
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.Throws
https://nodejs.org/api/errors.html#class-typeerror If the
+fn
parameter is not a function.Protected
afterHook executed after the worker task execution. Can be overridden.
-Parameters
---
-
--
-
worker: ThreadWorkerWithMessageChannel
-The worker.
-message: MessageValue<Response, unknown>
-The received message.
-Returns void
Worker Setup
-Protected
after-- after
Worker Setup(worker: ThreadWorkerWithMessageChannel): void
--
-
-
-
-
Function that can be hooked up when a worker has been newly created and moved to the pool worker nodes.
-Can be used to update the
-maxListeners
or binding themain-worker
<->worker
connection if not bind by default.Parameters
---
-
worker: ThreadWorkerWithMessageChannel
-The newly created worker.
-Returns void
Task Execution Hook
-Protected
before-- before
Task Execution Hook(workerNodeKey: number): void
--
-
Hook executed before the worker task execution. +
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 worker node key.
-Returns void
Worker Node
-Protected
choose-- choose
Worker Node(): [number, WorkerNode<ThreadWorkerWithMessageChannel, Data>]
--
-
-
Chooses a worker node for the next task.
-The default uses a round robin algorithm to distribute the load.
- -Returns
[worker node key, worker node].
-Returns [number, WorkerNode<ThreadWorkerWithMessageChannel, Data>]
And Setup Worker
-Protected
create-- create
And Setup Worker(): ThreadWorkerWithMessageChannel
--
-
-
Creates a new worker and sets it up completely in the pool worker nodes.
- -Returns
New, completely set up worker.
-Returns ThreadWorkerWithMessageChannel
Worker
-Protected
create-- create
Worker(): ThreadWorkerWithMessageChannel
--
-
-
Returns a newly created worker.
-Returns ThreadWorkerWithMessageChannel
destroy
--- destroy(): Promise<void>
--
-
-
Shutdowns every current worker in this pool.
-Returns Promise<void>
Worker
-Protected
destroy-- destroy
Worker(worker: ThreadWorkerWithMessageChannel): Promise<void>
--
-
-
-
-
Shutdowns the given worker.
-Parameters
---
-
worker: ThreadWorkerWithMessageChannel
-A worker within
-workerNodes
.Returns Promise<void>
enable Tasks Queue
--- enable
Tasks Queue(enable: boolean, tasksQueueOptions?: TasksQueueOptions): void
--
-
-
-
-
Enables/disables the worker tasks queue in this pool.
-Parameters
---
-
--
-
enable: boolean
-Whether to enable or disable the worker tasks queue.
-
-Optional
tasksQueueOptions: TasksQueueOptionsThe worker tasks queue options.
-Returns void
execute
--- execute(data?: Data): Promise<Response>
--
-
-
-
-
Executes the function specified in the worker constructor with the task data input parameter.
- -Returns
Promise that will be fulfilled when the task is completed.
-Parameters
---
-
-Optional
data: DataThe task input data for the specified worker function. This can only be serializable data.
-Returns Promise<Response>
find Free Worker Node Key
--- find
Free Worker Node Key(): number
--
-
-
Finds a free worker node key based on the number of tasks the worker has applied.
-If a worker is found with
-0
running tasks, it is detected as free and its worker node key is returned.If no free worker is found,
- --1
is returned.Returns
A worker node key if there is one,
--1
otherwise.Returns number
Busy
-Protected
internal-- internal
Busy(): boolean
--
-
Returns boolean
Main
-Protected
is-- is
Main(): boolean
--
-
-
Should return whether the worker is the main worker or not.
-Returns boolean
Worker Message Listener
-Protected
register-- register
Worker Message Listener<Message>(worker: ThreadWorkerWithMessageChannel, listener: ((message: MessageValue<Message, unknown>) => void)): void
--
-
-
-
-
-
-
Registers a listener callback on the given worker.
-Type Parameters
---
-
Message
Parameters
---
-
--
-
-
worker: ThreadWorkerWithMessageChannel
-The worker which should register a listener.
-listener: ((message: MessageValue<Message, unknown>) => void)
-The message listener callback.
---
-
-- (message: MessageValue<Message, unknown>): void
--
-
-
-
Parameters
---
-
message: MessageValue<Message, unknown>
Returns void
Returns void
To Worker
-Protected
send-- send
To Worker(worker: ThreadWorkerWithMessageChannel, message: MessageValue<Data, unknown>): void
--
-
-
-
-
Sends a message to the given worker.
-Parameters
---
-
--
-
worker: ThreadWorkerWithMessageChannel
-The worker which should receive the message.
-message: MessageValue<Data, unknown>
-The message.
-Returns void
set Tasks Queue Options
--- set
Tasks Queue Options(tasksQueueOptions: TasksQueueOptions): void
--
-
-
-
-
Sets the worker tasks queue options in this pool.
-Parameters
---
-
tasksQueueOptions: TasksQueueOptions
-The worker tasks queue options.
-Returns void
set Worker Choice Strategy
--- set
Worker Choice Strategy(workerChoiceStrategy: "ROUND_ROBIN" | "LESS_USED" | "LESS_BUSY" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN", workerChoiceStrategyOptions?: WorkerChoiceStrategyOptions): void
--
-
-
-
-
Sets the worker choice strategy in this pool.
-Parameters
---
-
--
-
workerChoiceStrategy: "ROUND_ROBIN" | "LESS_USED" | "LESS_BUSY" | "FAIR_SHARE" | "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: 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 node are created in the abstract constructor. -Can be overridden
-Returns void
Listener
-Protected
worker-- worker
Listener(): ((message: MessageValue<Response, unknown>) => void)
--
-
-
This function is the listener registered for each worker message.
- -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 message.
- -Returns
The listener function to execute when a message is received from a 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
-- number
Of Queued Tasks
-- number
Of Running Tasks
-- type
-- after
Task Execution Hook
-- after
Worker Setup
-- before
Task Execution Hook
-- choose
Worker Node
-- create
And Setup Worker
-- create
Worker
-- destroy
-- destroy
Worker
-- enable
Tasks Queue
-- execute
-- find
Free Worker Node Key
-- internal
Busy
-- is
Main
-- register
Worker Message Listener
-- send
To Worker
-- set
Tasks Queue Options
-- set
Worker Choice Strategy
-- set
Worker Choice Strategy Options
-- setup
Hook
-- worker
Listener
Generated using TypeDoc
Parameters
workerNodeKey: number
The newly created worker node key.
+Returns void