X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=docs%2Fclasses%2FDynamicThreadPool.html;h=5407127f2f730d79132e2991321e6c195d5b32ca;hb=224d008191f52fa20b93e1ba67919569f8d6e315;hp=71b0b952572a795914497896d7f1fca6009a757d;hpb=3fec62b0785f8819bbf9d87ab7b8cf9097f552a7;p=poolifier.git diff --git a/docs/classes/DynamicThreadPool.html b/docs/classes/DynamicThreadPool.html index 71b0b952..5407127f 100644 --- a/docs/classes/DynamicThreadPool.html +++ b/docs/classes/DynamicThreadPool.html @@ -1,182 +1,162 @@ -
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 - v4.0.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 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. +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
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 thread pool.
+Type Parameters
Parameters
Minimum number of threads which are always active.
+Maximum number of threads that can be created by this pool.
+Path to an implementation of a
+ThreadWorker
file, which can be relative or absolute.Options for this dynamic thread pool.
+Returns DynamicThreadPool<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).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:
+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.
-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. +
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
Protected
afterMethod 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
Protected
beforeHook 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
Protected
createCreates a new, completely set up dynamic worker node.
+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.
+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 chosen 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.
+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.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.
+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.
-Optional
transferList: TransferListItem[]The optional array of transferable objects.
-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. +
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.
+Optional
transferList: readonly TransferListItem[]The optional array of transferable objects.
+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
Starts the minimum number of workers in this pool.
-Returns void
Protected
workerThis method is the message listener registered on each worker.
-Parameters
message: MessageValue<Response, unknown>
Returns void
Settings
Member Visibility
Theme
On This Page
Generated using TypeDoc
Returns void
Protected
shallConditions for dynamic worker creation.
+Returns boolean
Whether to create a dynamic worker or not.
+start
Returns void
Inherit Doc
Protected
Readonly
workerThis method is the message listener registered on each worker.
+Parameters
The message received from the worker.
+Returns void
Settings
On This Page
Constructors
Properties
Accessors
Methods