X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=docs%2Fclasses%2FDynamicThreadPool.html;h=71b0b952572a795914497896d7f1fca6009a757d;hb=3fec62b0785f8819bbf9d87ab7b8cf9097f552a7;hp=fa708b4b42d12141a962733b982f30918d2e3620;hpb=7e2a464b15953320c79646e2ff88d953db4e5b96;p=poolifier.git diff --git a/docs/classes/DynamicThreadPool.html b/docs/classes/DynamicThreadPool.html index fa708b4b..71b0b952 100644 --- a/docs/classes/DynamicThreadPool.html +++ b/docs/classes/DynamicThreadPool.html @@ -1,698 +1,182 @@ -
Protected
beforeHook executed before the worker task execution. +Can be overridden.
+The worker node key.
+The task to execute.
+Protected
createProtected
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
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
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.0.6Class 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, an event is emitted. If you want to listen to this event, use the pool's
- -emitter
.Template
of data sent to the worker. This can only be serializable data.
- -Template
of response of execution. This can only be serializable data.
- -Author
Alessandro Pio Ardizio
- -Since
0.0.1
-Type Parameters
---
-
--
-
Data = unknown
Response = unknown
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.
-Optional
opts: PoolOptions<ThreadWorkerWithMessageChannel> = {}Options for this dynamic thread pool.
-Returns DynamicThreadPool<Data, Response>
Properties
-
-Optional
Readonly
emitterInherit Doc
Path
-Readonly
file
-Readonly
maxInherit Doc
Message Id
-Protected
nextId of the next message.
- Of Workers
-Readonly
number
-Readonly
opts Map
-Protected
promiseThe promise map.
--
-
+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
key
: This is the message Id of each submitted task.value
: An object that contains the worker, the resolve function and the reject function.emitter
. +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
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:
++
+
+
+
+
+
+
-'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).When we receive a message from the worker we get a map entry and resolve/reject the promise based on the message.
- Choice Strategy Context
-Protected
workerWorker choice strategy instance implementing the worker choice algorithm.
-Default to a strategy implementing a round robin algorithm.
-
-Readonly
workersInherit Doc
Tasks Usage
-Readonly
workersInherit Doc
Accessors
-busy
--- get busy(): boolean
--
-
-
-
Inherit Doc
Returns boolean
number Of Running Tasks
--- get numberOfRunningTasks(): number
--
-
-
-
Inherit Doc
Returns number
type
--- get type(): PoolType
--
-
-
-
Inherit Doc
Returns PoolType
Methods
- Promise Worker Response Hook
-Protected
after-- after
Promise Worker Response Hook(message: MessageValue<Response, unknown>, promise: PromiseWorkerResponseWrapper<ThreadWorkerWithMessageChannel, Response>): void
--
-
Hook executed after the worker task promise resolution. +
Protected
Readonly
filePath to the worker file.
+Protected
Readonly
maxMaximum number of threads that can be created by this pool.
+Protected
Readonly
numberNumber of workers that this pool should manage.
+Protected
Readonly
optsOptions for this fixed thread 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.
+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
fullWhether the pool is full or not.
+The pool filling boolean status.
+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
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
---
-
--
-
message: MessageValue<Response, unknown>
-The received message.
-promise: PromiseWorkerResponseWrapper<ThreadWorkerWithMessageChannel, Response>
-The Promise response.
-Returns void
Worker Setup
-Protected
after-- after
Worker Setup(worker: ThreadWorkerWithMessageChannel): void
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
worker: ThreadWorkerWithMessageChannel
Returns void
Promise Worker Response Hook
-Protected
before-- before
Promise Worker Response Hook(worker: ThreadWorkerWithMessageChannel): void
--
-
Hook executed before the worker task promise resolution. +
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
---
-
worker: ThreadWorkerWithMessageChannel
-The worker.
-Returns void
Worker
-Protected
choose-- choose
Worker(): ThreadWorkerWithMessageChannel
--
-
-
Chooses a worker for the next task.
-The default implementation uses a round robin algorithm to distribute the load.
- -Returns
Worker.
-Returns ThreadWorkerWithMessageChannel
And Setup Worker
-Protected
create-- create
And Setup Worker(): ThreadWorkerWithMessageChannel
--
-
-
Creates a new worker for this pool and sets it up completely.
- -Returns
New, completely set up worker.
-Returns ThreadWorkerWithMessageChannel
Worker
-Protected
create-- create
Worker(): ThreadWorkerWithMessageChannel
--
-
-
-
Inherit Doc
Returns ThreadWorkerWithMessageChannel
destroy
--- destroy(): Promise<void>
--
-
-
-
Inherit Doc
Returns Promise<void>
destroy Worker
--- destroy
Worker(worker: ThreadWorkerWithMessageChannel): Promise<void>
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
worker: ThreadWorkerWithMessageChannel
Returns Promise<void>
execute
--- execute(data: Data): Promise<Response>
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
data: Data
Returns Promise<Response>
find Free Worker
--- find
Free Worker(): false | ThreadWorkerWithMessageChannel
--
-
-
-
Inherit Doc
Returns false | ThreadWorkerWithMessageChannel
get Worker Average Tasks Run Time
--- get
Worker Average Tasks Run Time(worker: ThreadWorkerWithMessageChannel): undefined | number
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
worker: ThreadWorkerWithMessageChannel
Returns undefined | number
get Worker Index
--- get
Worker Index(worker: ThreadWorkerWithMessageChannel): number
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
worker: ThreadWorkerWithMessageChannel
Returns number
get Worker Running Tasks
--- get
Worker Running Tasks(worker: ThreadWorkerWithMessageChannel): undefined | number
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
worker: ThreadWorkerWithMessageChannel
Returns undefined | number
init Worker Tasks Usage
--- init
Worker Tasks Usage(worker: ThreadWorkerWithMessageChannel): void
--
-
-
-
-
Initializes tasks usage statistics.
-Parameters
---
-
worker: ThreadWorkerWithMessageChannel
-The worker.
-Returns void
Execute
-Protected
internal-- internal
Execute(worker: ThreadWorkerWithMessageChannel, messageId: number): Promise<Response>
--
-
-
-
Parameters
---
-
--
-
worker: ThreadWorkerWithMessageChannel
messageId: number
Returns Promise<Response>
Get Busy Status
-Protected
internal-- internal
Get Busy Status(): boolean
--
-
Returns boolean
Main
-Protected
is-- is
Main(): boolean
--
-
-
-
Inherit Doc
Returns boolean
register Worker Message Listener
--- register
Worker Message Listener<Message>(messageChannel: ThreadWorkerWithMessageChannel, listener: ((message: MessageValue<Message, unknown>) => void)): void
--
-
-
-
-
-
-
-
Inherit Doc
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
Worker
-Protected
remove-- remove
Worker(worker: ThreadWorkerWithMessageChannel): void
--
-
-
-
-
Removes the given worker from the pool.
-Parameters
---
-
worker: ThreadWorkerWithMessageChannel
-Worker that will be removed.
-Returns void
To Worker
-Protected
send-- send
To Worker(worker: ThreadWorkerWithMessageChannel, message: MessageValue<Data, unknown>): void
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
--
-
worker: ThreadWorkerWithMessageChannel
message: MessageValue<Data, unknown>
Returns void
set Worker Choice Strategy
--- set
Worker Choice Strategy(workerChoiceStrategy: "ROUND_ROBIN" | "LESS_RECENTLY_USED" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN"): void
--
-
-
-
-
-
Inherit Doc
Parameters
---
-
workerChoiceStrategy: "ROUND_ROBIN" | "LESS_RECENTLY_USED" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN"
Returns void
Hook
-Protected
setup-- setup
Hook(): 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
Listener
-Protected
worker-- worker
Listener(): ((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.
-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
-
-Settings
Member Visibility
Theme
Generated using TypeDoc
Parameters
workerNodeKey: number
The newly created worker node key.
+Returns void