X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=docs%2Fclasses%2FAbstractPool.html;h=57b75a1a6da1adfb6f25fa46a5518a8e1ce7ed62;hb=4ee786575c19cfc95faa0dfc2671b3ab8f680402;hp=044f4f68ed08add2a78bf75a4f9fa8876f8d96ee;hpb=e1d3eccbb484bfbe36f6dcb9c4ef22a11621a00b;p=poolifier.git diff --git a/docs/classes/AbstractPool.html b/docs/classes/AbstractPool.html index 044f4f68..57b75a1a 100644 --- a/docs/classes/AbstractPool.html +++ b/docs/classes/AbstractPool.html @@ -1,13 +1,13 @@ -
Abstract
Type of data sent to the worker. This can only be serializable data.
-Type of data sent to the worker. This can only be structured-cloneable data.
+Type of execution response. This can only be serializable data.
-Type of execution response. This can only be structured-cloneable data.
+Constructs a new poolifier pool.
Number of workers that this pool should manage.
-Path to the worker file.
-Options for the pool.
-Optional
Readonly
emitterEmitter on which events can be listened to.
+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).Implementation of IPool.emitter
Readonly
fileProtected
Readonly
filePath to the worker file.
-Readonly
numberProtected
Optional
Readonly
maxDynamic pool maximum size property placeholder.
+Protected
Readonly
numberNumber of workers that this pool should manage.
-Readonly
optsProtected
Readonly
optsOptions for the pool.
-Protected
promiseThe execution response promise map.
+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.
-Private
Readonly
startThe start timestamp of the pool.
+Private
startedWhether the pool is started or not.
+Protected
workerPrivate
startingWhether the pool is starting or not.
+Private
Readonly
taskThe task functions added at runtime map:
+key
: The task function name.value
: The task function itself.Protected
workerWorker choice strategy context referencing a worker choice algorithm implementation.
-Default to a round robin algorithm.
-Readonly
workerReadonly
Internal
workerPool worker nodes.
-Implementation of IPool.workerNodes
Protected
Abstract
busyProtected
Abstract
busyWhether the pool is busy or not.
The pool busyness boolean status.
Protected
Abstract
fullProtected
fullWhether the pool is full or not.
The pool filling boolean status.
Private
numberNumber of tasks queued in the pool.
+Pool information.
Private
numberProtected
maxNumber of tasks running in the pool.
+The pool maximum size.
Protected
minThe pool minimum size.
+Private
readyThe pool readiness boolean status.
+Abstract
typeProtected
Abstract
typePool type.
+The pool type.
If it is 'dynamic'
, it provides the max
property.
Private
utilizationThe approximate pool utilization.
+The pool utilization.
+ +Protected
Abstract
workerThe worker type.
+Protected
afterAdds a task function to this pool. +If a task function with the same name already exists, it will be overwritten.
+The name of the task function.
+The task function.
+true
if the task function was added, false
otherwise.
https://nodejs.org/api/errors.html#class-typeerror If the name
parameter is not a string or an empty string.
https://nodejs.org/api/errors.html#class-typeerror If the fn
parameter is not a function.
Implementation of IPool.addTaskFunction
+Private
addAdds the given worker in the pool worker nodes.
+The worker.
+The added worker node key.
+ +https://nodejs.org/api/errors.html#class-error If the added worker node is not found.
+Protected
afterHook executed after the worker task execution. Can be overridden.
@@ -285,38 +496,43 @@ Can be overridden.The worker.
-The worker node key.
+The received message.
-Protected
Abstract
afterProtected
afterFunction 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 the main-worker
<->worker
connection if not bind by default.
Method hooked up after a worker node has been newly created. +Can be overridden.
The newly created worker.
-The newly created worker node key.
+Protected
beforeProtected
beforeThe task to execute.
+Private
buildPrivate
buildPrivate
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkChecks if the worker id sent in the received message from a worker is valid.
+The received message.
+https://nodejs.org/api/errors.html#class-error If the worker id is invalid.
+Private
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkProtected
choosePrivate
chooseChooses a worker node for the next task.
-The default uses a round robin algorithm to distribute the load.
- -[worker node key, worker node].
+The default worker choice strategy uses a round robin algorithm to distribute the tasks.
The chosen worker node key
+ +Protected
createProtected
createCreates a new worker and sets it up completely in the pool worker nodes.
+Creates a new, completely set up dynamic worker node.
+New, completely set up dynamic worker node key.
-New, completely set up worker.
+Protected
createCreates a new, completely set up worker node.
New, completely set up worker node key.
+ +Protected
Abstract
createProtected
Abstract
createReturns a newly created worker.
+Creates a new worker.
Newly created worker.
+ +Private
dequeuePrivate
deletePrivate
dequeueProtected
Abstract
deregisterDeregisters a listener callback on the worker given its worker node key.
+The worker node key.
+The message listener callback.
+Shutdowns every current worker in this pool.
+Terminates all workers in this pool.
Implementation of IPool.destroy
+Implementation of IPool.destroy
Protected
Abstract
destroyProtected
Abstract
destroyShutdowns the given worker.
+Terminates the worker node given its worker node key.
A worker within workerNodes
.
The worker node key.
+Enables/disables the worker tasks queue in this pool.
+Enables/disables the worker node tasks queue in this pool.
Whether to enable or disable the worker tasks queue.
-Whether to enable or disable the worker node tasks queue.
+Optional
tasksQueueOptions: TasksQueueOptionsThe worker tasks queue options.
-Implementation of IPool.enableTasksQueue
+Optional
tasksQueueOptions: TasksQueueOptionsThe worker node tasks queue options.
+Implementation of IPool.enableTasksQueue
Private
enqueuePrivate
enqueueExecutes the function specified in the constructor with the task data input parameter.
- -Promise that will be resolved when the task is successfully completed.
+Executes the specified function in the worker constructor with the task data input parameter.
The task input data for the specified function. This can only be serializable data.
-Implementation of IPool.execute
+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.
+Promise that will be fulfilled when the task is completed.
+ +Implementation of IPool.execute
Private
executePrivate
executeExecutes the given task on the worker given its worker node key.
+The worker node key.
+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.
A worker node key if there is one, -1
otherwise.
The task to execute.
Implementation of IPool.findFreeWorkerNodeKey
+Private
flushProtected
flushPrivate
flushPrivate
flushProtected
getGets the worker information given its worker node key.
+The worker node key.
+The worker information.
+ +Private
getPrivate
getGets the given worker its worker node key.
- -The worker node key if the worker is found in the pool worker nodes, -1
otherwise.
The worker.
-The worker node key if found in the pool worker nodes, -1
otherwise.
Private
getPrivate
getGets the given worker its tasks usage in the pool.
+Gets the worker node key given its worker id.
+The worker id.
+The worker node key if the worker id is found in the pool worker nodes, -1
otherwise.
Error if the worker is not found in the pool worker nodes.
+Private
handlePrivate
handlePrivate
hasWhether the specified task function exists in this pool.
+The name of the task function.
+true
if the task function exists, false
otherwise.
The worker tasks usage.
+Implementation of IPool.hasTaskFunction
+Internal
+Whether the worker node has back pressure (i.e. its tasks queue is full).
The worker.
-The worker node key.
+true
if the worker node has back pressure, false
otherwise.
Implementation of IPool.hasWorkerNodeBackPressure
Protected
internalPrivate
initializeProtected
internalWhether worker nodes are executing concurrently their tasks quota or not.
+Worker nodes busyness boolean status.
+ +Protected
Abstract
isProtected
Abstract
isShould return whether the worker is the main worker or not.
Private
pushPushes the given worker in the pool worker nodes.
+Lists the names of task function available in this pool.
+The names of task function available in this pool.
-The worker nodes length.
+Implementation of IPool.listTaskFunctionNames
+Private
redistributeProtected
Abstract
registerRegisters once a listener callback on the worker given its worker node key.
+The worker node key.
The message listener callback.
+The worker.
-Protected
Abstract
registerProtected
Abstract
registerRegisters a listener callback on the given worker.
+Registers a listener callback on the worker given its worker node key.
The worker which should register a listener.
-The worker node key.
+The message listener callback.
Private
removeRemoves a task function from this pool.
+The name of the task function.
+true
if the task function was removed, false
otherwise.
Implementation of IPool.removeTaskFunction
+Private
removeRemoves the given worker from the pool worker nodes.
The worker.
-Protected
Abstract
sendProtected
sendSends a message to the given worker.
+Protected
Abstract
sendSends the startup message to worker given its worker node key.
The worker which should receive the message.
-The worker node key.
+Private
sendSends the statistics message to worker given its worker node key.
+The worker node key.
+Private
sendPrivate
sendProtected
Abstract
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 default task function in this pool.
+The name of the task function.
+true
if the default task function was set, false
otherwise.
Implementation of IPool.setDefaultTaskFunction
+Private
setSets the worker tasks queue options in this pool.
+Sets the worker node tasks queue options in this pool.
The worker tasks queue options.
-The worker node tasks queue options.
+Implementation of IPool.setTasksQueueOptions
+Private
setPrivate
setImplementation of IPool.setTasksQueueOptions
Sets the worker choice strategy in this pool.
The worker choice strategy.
-Optional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsOptional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsThe worker choice strategy options.
-Implementation of IPool.setWorkerChoiceStrategy
+ + +Implementation of IPool.setWorkerChoiceStrategy
Sets the worker choice strategy options in this pool.
The worker choice strategy options.
-Implementation of IPool.setWorkerChoiceStrategyOptions
+ +Implementation of IPool.setWorkerChoiceStrategyOptions
Private
setProtected
setupSets the given worker in the pool worker nodes.
+Setup hook to execute code before worker nodes are created in the abstract constructor. +Can be overridden.
+Private
shallConditions for dynamic worker creation.
Whether to create a dynamic worker or not.
+ +Private
shallPrivate
shalltrue
if the worker node shall update its task function worker usage, false
otherwise.
Starts the minimum number of workers in this pool.
+Private
taskThe worker.
-Private
tasksThe worker tasks usage.
-Private
tasksThe worker task queue.
-Private
setPrivate
unsetPrivate
unsetPrivate
updateSets the given worker node its tasks usage in the pool.
-The worker node.
-The worker node tasks usage.
-Protected
setupPrivate
updateSetup hook to execute code before worker node are created in the abstract constructor. -Can be overridden
-Private
tasksPrivate
updateProtected
workerPrivate
updateThis function is the listener registered for each worker message.
- -The listener function to execute when a message is received from a worker.
-Private
updateThis function is the listener registered for each worker message.
- -The listener function to execute when a message is received from a worker.
+Protected
workerThis method is the message listener registered on each worker.
Generated using TypeDoc
Generated using TypeDoc
+ \ No newline at end of file
Base class that implements some shared logic for all poolifier pools.
-