X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=docs%2Fclasses%2FDynamicThreadPool.html;h=966c0ce5f959157f8a59d46e7a8ea1b9aabd9888;hb=200aca02adb41311beb654c24970049a50df5474;hp=6910150bf4dd6529111bb2ca763a2a2770729168;hpb=d0f1dce33156fdb99f0ca3627839001909419497;p=poolifier.git diff --git a/docs/classes/DynamicThreadPool.html b/docs/classes/DynamicThreadPool.html index 6910150b..966c0ce5 100644 --- a/docs/classes/DynamicThreadPool.html +++ b/docs/classes/DynamicThreadPool.html @@ -1,57 +1,677 @@ -
Protected
workerThis function is the listener registered for each worker.
+ +The listener function to execute when a message is received from a worker.
+This function is the listener registered for each worker.
+ +The listener function to execute when a message is received from a worker.
+Generated using TypeDoc
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. +
+- Preparing search index...
+- The search index is not available
poolifier+- poolifier
+- DynamicThreadPool
+Class 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
.of data sent to the worker. This can only be serializable data.
-of response of execution. This can only be serializable data.
-Alessandro Pio Ardizio
-0.0.1
-Type parameters
Data = unknown
Response = unknown
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: PoolOptions<ThreadWorkerWithMessageChannel> = {}
Returns DynamicThreadPool<Data, Response>
Properties
Optional Readonly emitter
Readonly file Path
Readonly max
Protected next Message Id
Id of the next message.
-Readonly number Of Workers
Readonly opts
Protected promise Map
The promise map.
-+ +
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 response of execution. 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
emitterInherit Doc
Path
+Readonly
file
+Protected
Readonly
max Message Id
+Protected
nextId of the next message.
+ Of Workers
+Readonly
number
+Readonly
opts Map
+Protected
promiseThe promise map.
+key
: This is the message Id of each submitted task.value
: An object that contains the worker, the resolve function and the reject function.When we receive a message from the worker we get a map entry and resolve/reject the promise based on the message.
-Readonly tasks
Protected worker Choice Strategy Context
Worker choice strategy instance implementing the worker choice algorithm.
-Default to a strategy implementing a round robin algorithm.
-Readonly workers
Accessors
busy
Returns boolean
number Of Running Tasks
Returns number
type
Returns PoolType
Methods
Protected after Worker Setup
Parameters
worker: ThreadWorkerWithMessageChannel
Returns void
Protected choose Worker
Choose a worker for the next task.
-The default implementation uses a round robin algorithm to distribute the load.
-Returns ThreadWorkerWithMessageChannel
Worker.
-Protected create And Setup Worker
Creates a new worker for this pool and sets it up completely.
-Returns ThreadWorkerWithMessageChannel
New, completely set up worker.
-Protected create Worker
Returns ThreadWorkerWithMessageChannel
Protected decrease Workers Tasks
Decrease the number of tasks that the given worker has applied.
-Parameters
worker: ThreadWorkerWithMessageChannel
Worker whose tasks are decreased.
-Returns void
destroy
Returns Promise<void>
destroy Worker
Parameters
worker: ThreadWorkerWithMessageChannel
Returns Promise<void>
execute
Parameters
data: Data
Returns Promise<Response>
find Free Tasks Map Entry
Returns false | [ThreadWorkerWithMessageChannel, number]
Protected increase Workers Task
Increase the number of tasks that the given worker has applied.
-Parameters
worker: ThreadWorkerWithMessageChannel
Worker whose tasks are increased.
-Returns void
Protected internal Execute
Parameters
worker: ThreadWorkerWithMessageChannel
messageId: number
Returns Promise<Response>
Protected internal Get Busy Status
Returns boolean
Protected is Main
Returns boolean
register Worker Message Listener
Type parameters
Message
Parameters
messageChannel: ThreadWorkerWithMessageChannel
listener: (message: MessageValue<Message, unknown>) => void
Parameters
message: MessageValue<Message, unknown>
Returns void
Returns void
Protected remove Worker
Removes the given worker from the pool.
-Parameters
worker: ThreadWorkerWithMessageChannel
Worker that will be removed.
-Returns void
Protected send To Worker
Parameters
worker: ThreadWorkerWithMessageChannel
message: MessageValue<Data, unknown>
Returns void
set Worker Choice Strategy
Parameters
workerChoiceStrategy: "ROUND_ROBIN" | "LESS_RECENTLY_USED"
Returns void
Protected setup Hook
Setup hook that can be overridden by a Poolifier pool implementation +
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. +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. +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
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
+The 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
Protected worker Listener
This function is the listener registered for each worker.
-Returns (message: MessageValue<Response, unknown>) => void
The listener function to execute when a message is sent from a worker.
-This function is the listener registered for each worker.
-Parameters
message: MessageValue<Response, unknown>
Returns void
The listener function to execute when a message is sent from a worker.
-Generated using TypeDoc