repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: improve error messages
[poolifier.git]
/
src
/
pools
/
worker.ts
diff --git
a/src/pools/worker.ts
b/src/pools/worker.ts
index 598e6be82ca22588c34f04d6a0c402359956b66d..664b6a7695ef42a088732812a7eac270e9f87a00 100644
(file)
--- a/
src/pools/worker.ts
+++ b/
src/pools/worker.ts
@@
-6,7
+6,7
@@
import type { Queue } from '../queue'
*/
export type MessageHandler<Worker extends IWorker> = (
this: Worker,
*/
export type MessageHandler<Worker extends IWorker> = (
this: Worker,
- m: unknown
+ m
essage
: unknown
) => void
/**
) => void
/**
@@
-14,7
+14,7
@@
export type MessageHandler<Worker extends IWorker> = (
*/
export type ErrorHandler<Worker extends IWorker> = (
this: Worker,
*/
export type ErrorHandler<Worker extends IWorker> = (
this: Worker,
- e: Error
+ e
rror
: Error
) => void
/**
) => void
/**
@@
-27,13
+27,13
@@
export type OnlineHandler<Worker extends IWorker> = (this: Worker) => void
*/
export type ExitHandler<Worker extends IWorker> = (
this: Worker,
*/
export type ExitHandler<Worker extends IWorker> = (
this: Worker,
-
c
ode: number
+
exitC
ode: number
) => void
/**
* Message object that is passed as a task between main worker and worker.
*
) => void
/**
* 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 s
erializ
able data.
+ * @typeParam Data - Type of data sent to the worker. This can only be s
tructured-clone
able data.
* @internal
*/
export interface Task<Data = unknown> {
* @internal
*/
export interface Task<Data = unknown> {
@@
-108,12
+108,32
@@
export interface TaskStatistics {
* Number of queued tasks.
*/
readonly queued: number
* Number of queued tasks.
*/
readonly queued: number
+ /**
+ * Maximum number of queued tasks.
+ */
+ readonly maxQueued: number
/**
* Number of failed tasks.
*/
failed: number
}
/**
* Number of failed tasks.
*/
failed: number
}
+/**
+ * Worker information.
+ *
+ * @internal
+ */
+export interface WorkerInfo {
+ /**
+ * Worker id.
+ */
+ id: number | undefined
+ /**
+ * Started flag.
+ */
+ started: boolean
+}
+
/**
* Worker usage statistics.
*
/**
* Worker usage statistics.
*
@@
-143,7
+163,12
@@
export interface WorkerUsage {
*/
export interface IWorker {
/**
*/
export interface IWorker {
/**
- * Register an event listener.
+ * Worker id.
+ */
+ readonly id?: number
+ readonly threadId?: number
+ /**
+ * Registers an event listener.
*
* @param event - The event.
* @param handler - The event handler.
*
* @param event - The event.
* @param handler - The event handler.
@@
-153,7
+178,7
@@
export interface IWorker {
((event: 'online', handler: OnlineHandler<this>) => void) &
((event: 'exit', handler: ExitHandler<this>) => void)
/**
((event: 'online', handler: OnlineHandler<this>) => void) &
((event: 'exit', handler: ExitHandler<this>) => void)
/**
- * Register a listener to the exit event that will only be performed once.
+ * Register
s
a listener to the exit event that will only be performed once.
*
* @param event - `'exit'`.
* @param handler - The exit handler.
*
* @param event - `'exit'`.
* @param handler - The exit handler.
@@
-165,7
+190,7
@@
export interface IWorker {
* Worker node interface.
*
* @typeParam Worker - Type of worker.
* Worker node interface.
*
* @typeParam Worker - Type of worker.
- * @typeParam Data - Type of data sent to the worker. This can only be s
erializ
able data.
+ * @typeParam Data - Type of data sent to the worker. This can only be s
tructured-clone
able data.
* @internal
*/
export interface WorkerNode<Worker extends IWorker, Data = unknown> {
* @internal
*/
export interface WorkerNode<Worker extends IWorker, Data = unknown> {
@@
-173,10
+198,14
@@
export interface WorkerNode<Worker extends IWorker, Data = unknown> {
* Worker node worker.
*/
readonly worker: Worker
* Worker node worker.
*/
readonly worker: Worker
+ /**
+ * Worker node worker info.
+ */
+ info: WorkerInfo
/**
* Worker node worker usage statistics.
*/
/**
* Worker node worker usage statistics.
*/
-
workerU
sage: WorkerUsage
+
u
sage: WorkerUsage
/**
* Worker node tasks queue.
*/
/**
* Worker node tasks queue.
*/