repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
perf: improve node eligibility branching on worker choice strategies
[poolifier.git]
/
src
/
pools
/
worker.ts
diff --git
a/src/pools/worker.ts
b/src/pools/worker.ts
index 14c8dbe1e1d444f5404e8562c1c59ecf1585d869..7a8c59e7730eba9be39ae972f94022a8a65a14ce 100644
(file)
--- a/
src/pools/worker.ts
+++ b/
src/pools/worker.ts
@@
-96,6
+96,10
@@
export interface TaskStatistics {
* Maximum number of queued tasks.
*/
readonly maxQueued?: number
* Maximum number of queued tasks.
*/
readonly maxQueued?: number
+ /**
+ * Number of stolen tasks.
+ */
+ stolen: number
/**
* Number of failed tasks.
*/
/**
* Number of failed tasks.
*/
@@
-189,12
+193,15
@@
export interface IWorker {
/**
* Registers a listener to the exit event that will only be performed once.
*
/**
* Registers a listener to the exit event that will only be performed once.
*
- * @param event -
`'exit'`
.
+ * @param event -
The `'exit'` event
.
* @param handler - The exit handler.
*/
readonly once: (event: 'exit', handler: ExitHandler<this>) => void
}
* @param handler - The exit handler.
*/
readonly once: (event: 'exit', handler: ExitHandler<this>) => void
}
+export type EmptyQueueCallback = (workerId: number) => void
+export type BackPressureCallback = EmptyQueueCallback
+
/**
* Worker node interface.
*
/**
* Worker node interface.
*
@@
-211,14
+218,14
@@
export interface IWorkerNode<Worker extends IWorker, Data = unknown> {
* Worker info.
*/
readonly info: WorkerInfo
* Worker info.
*/
readonly info: WorkerInfo
- /**
- * Message channel (worker_threads only).
- */
- readonly messageChannel?: MessageChannel
/**
* Worker usage statistics.
*/
usage: WorkerUsage
/**
* Worker usage statistics.
*/
usage: WorkerUsage
+ /**
+ * Message channel (worker_threads only).
+ */
+ readonly messageChannel?: MessageChannel
/**
* Tasks queue back pressure size.
* This is the number of tasks that can be enqueued before the worker node has back pressure.
/**
* Tasks queue back pressure size.
* This is the number of tasks that can be enqueued before the worker node has back pressure.
@@
-229,13
+236,13
@@
export interface IWorkerNode<Worker extends IWorker, Data = unknown> {
*
* @param workerId - The worker id.
*/
*
* @param workerId - The worker id.
*/
- onBackPressure?:
(workerId: number) => void
+ onBackPressure?:
EmptyQueueCallback
/**
* Callback invoked when worker node tasks queue is empty.
*
* @param workerId - The worker id.
*/
/**
* Callback invoked when worker node tasks queue is empty.
*
* @param workerId - The worker id.
*/
- onEmptyQueue?:
(workerId: number) => void
+ onEmptyQueue?:
BackPressureCallback
/**
* Tasks queue size.
*
/**
* Tasks queue size.
*