Merge branch 'master' of github.com:poolifier/poolifier
[poolifier.git] / src / pools / abstract-pool.ts
index bb37dbb70fe4aac89115fc5da929270f0a39dd8d..026bf918a40ce0158c3c159cd7734a6919f6e9c7 100644 (file)
@@ -1,6 +1,10 @@
 import { randomUUID } from 'node:crypto'
 import { performance } from 'node:perf_hooks'
-import type { MessageValue, PromiseResponseWrapper } from '../utility-types'
+import type {
+  MessageValue,
+  PromiseResponseWrapper,
+  Task
+} from '../utility-types'
 import {
   DEFAULT_TASK_NAME,
   DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS,
@@ -25,7 +29,6 @@ import type {
   IWorker,
   IWorkerNode,
   MessageHandler,
-  Task,
   WorkerInfo,
   WorkerType,
   WorkerUsage
@@ -309,7 +312,7 @@ export abstract class AbstractPool<
       ),
       maxQueuedTasks: this.workerNodes.reduce(
         (accumulator, workerNode) =>
-          accumulator + workerNode.usage.tasks.maxQueued,
+          accumulator + (workerNode.usage.tasks?.maxQueued ?? 0),
         0
       ),
       failedTasks: this.workerNodes.reduce(
@@ -672,9 +675,9 @@ export abstract class AbstractPool<
     const workerUsage = this.workerNodes[workerNodeKey].usage
     ++workerUsage.tasks.executing
     this.updateWaitTimeWorkerUsage(workerUsage, task)
-    const tasksWorkerUsage = this.workerNodes[
-      workerNodeKey
-    ].getTasksWorkerUsage(task.name as string) as WorkerUsage
+    const tasksWorkerUsage = this.workerNodes[workerNodeKey].getTaskWorkerUsage(
+      task.name as string
+    ) as WorkerUsage
     ++tasksWorkerUsage.tasks.executing
     this.updateWaitTimeWorkerUsage(tasksWorkerUsage, task)
   }
@@ -695,9 +698,9 @@ export abstract class AbstractPool<
     this.updateTaskStatisticsWorkerUsage(workerUsage, message)
     this.updateRunTimeWorkerUsage(workerUsage, message)
     this.updateEluWorkerUsage(workerUsage, message)
-    const tasksWorkerUsage = this.workerNodes[
-      workerNodeKey
-    ].getTasksWorkerUsage(message.name as string) as WorkerUsage
+    const tasksWorkerUsage = this.workerNodes[workerNodeKey].getTaskWorkerUsage(
+      message.name as string
+    ) as WorkerUsage
     this.updateTaskStatisticsWorkerUsage(tasksWorkerUsage, message)
     this.updateRunTimeWorkerUsage(tasksWorkerUsage, message)
     this.updateEluWorkerUsage(tasksWorkerUsage, message)