repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
docs: spell fix
[poolifier.git]
/
src
/
pools
/
worker.ts
diff --git
a/src/pools/worker.ts
b/src/pools/worker.ts
index 1f8efbc66e429bc65f58aa8ecbcf5b9807f88f6d..82aed5526c976a1d05691dd04d922d4f33bcd5ee 100644
(file)
--- a/
src/pools/worker.ts
+++ b/
src/pools/worker.ts
@@
-30,29
+30,55
@@
export type ExitHandler<Worker extends IWorker> = (
) => void
/**
) => void
/**
- * Worker task interface.
+ * Message object that is passed as a task between main worker and worker.
+ *
+ * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
+ * @internal
*/
export interface Task<Data = unknown> {
/**
*/
export interface Task<Data = unknown> {
/**
- *
Worker task data
.
+ *
Input data that will be passed to the worker
.
*/
*/
-
data
: Data
+
readonly data?
: Data
/**
/**
- *
Task UUID
.
+ *
UUID of the message
.
*/
*/
-
id
: string
+
readonly id?
: string
}
/**
* Worker tasks usage statistics.
}
/**
* Worker tasks usage statistics.
+ *
+ * @internal
*/
export interface TasksUsage {
*/
export interface TasksUsage {
+ /**
+ * Number of tasks executed.
+ */
run: number
run: number
+ /**
+ * Number of tasks running.
+ */
running: number
running: number
+ /**
+ * Tasks runtime.
+ */
runTime: number
runTime: number
+ /**
+ * Tasks runtime history.
+ */
runTimeHistory: CircularArray<number>
runTimeHistory: CircularArray<number>
+ /**
+ * Average tasks runtime.
+ */
avgRunTime: number
avgRunTime: number
+ /**
+ * Median tasks runtime.
+ */
medRunTime: number
medRunTime: number
+ /**
+ * Number of tasks errored.
+ */
error: number
}
error: number
}
@@
-81,9
+107,22
@@
export interface IWorker {
/**
* Worker node interface.
/**
* Worker node interface.
+ *
+ * @typeParam Worker - Type of worker.
+ * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
+ * @internal
*/
export interface WorkerNode<Worker extends IWorker, Data = unknown> {
*/
export interface WorkerNode<Worker extends IWorker, Data = unknown> {
- worker: Worker
+ /**
+ * Worker node worker.
+ */
+ readonly worker: Worker
+ /**
+ * Worker node tasks usage statistics.
+ */
tasksUsage: TasksUsage
tasksUsage: TasksUsage
- tasksQueue: Array<Task<Data>>
+ /**
+ * Worker node tasks queue.
+ */
+ readonly tasksQueue: Array<Task<Data>>
}
}