fix: fix default task function worker choice strategy and priority
[poolifier.git] / src / worker / abstract-worker.ts
index f328bcfb52db2b0f0e5b366e5a121d80c38d08d1..bb6ac5666e0252195b4f1cafbda38471ec7fcf07 100644 (file)
@@ -26,7 +26,7 @@ import type {
 } from './task-functions.js'
 import {
   checkTaskFunctionName,
-  checkValidTaskFunctionEntry,
+  checkValidTaskFunctionObjectEntry,
   checkValidWorkerOptions
 } from './utils.js'
 import { KillBehaviors, type WorkerOptions } from './worker-options.js'
@@ -145,7 +145,7 @@ export abstract class AbstractWorker<
           Response
           >
         }
-        checkValidTaskFunctionEntry<Data, Response>(name, fnObj)
+        checkValidTaskFunctionObjectEntry<Data, Response>(name, fnObj)
         fnObj.taskFunction = fnObj.taskFunction.bind(this)
         if (firstEntry) {
           this.taskFunctions.set(DEFAULT_TASK_NAME, fnObj)
@@ -200,7 +200,7 @@ export abstract class AbstractWorker<
       if (typeof fn === 'function') {
         fn = { taskFunction: fn } satisfies TaskFunctionObject<Data, Response>
       }
-      checkValidTaskFunctionEntry<Data, Response>(name, fn)
+      checkValidTaskFunctionObjectEntry<Data, Response>(name, fn)
       fn.taskFunction = fn.taskFunction.bind(this)
       if (
         this.taskFunctions.get(name) ===
@@ -324,19 +324,27 @@ export abstract class AbstractWorker<
    */
   protected messageListener (message: MessageValue<Data>): void {
     this.checkMessageWorkerId(message)
-    if (message.statistics != null) {
+    const {
+      statistics,
+      checkActive,
+      taskFunctionOperation,
+      taskId,
+      data,
+      kill
+    } = message
+    if (statistics != null) {
       // Statistics message received
-      this.statistics = message.statistics
-    } else if (message.checkActive != null) {
+      this.statistics = statistics
+    } else if (checkActive != null) {
       // Check active message received
-      message.checkActive ? this.startCheckActive() : this.stopCheckActive()
-    } else if (message.taskFunctionOperation != null) {
+      checkActive ? this.startCheckActive() : this.stopCheckActive()
+    } else if (taskFunctionOperation != null) {
       // Task function operation message received
       this.handleTaskFunctionOperationMessage(message)
-    } else if (message.taskId != null && message.data != null) {
+    } else if (taskId != null && data != null) {
       // Task message received
       this.run(message)
-    } else if (message.kill === true) {
+    } else if (kill === true) {
       // Kill message received
       this.handleKillMessage(message)
     }