X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2Fabstract-worker.ts;h=23739270b3a9863c20ea1a212004b2a94e982335;hb=4fe5947ed052e344500491261c2eb7dc0686480f;hp=a01541156b2041d28faa135dcef7694b496962c0;hpb=197b4aa5aa76186bbe6f9274d455f4bdb8baa637;p=poolifier.git diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index a0154115..23739270 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -7,7 +7,12 @@ import type { TaskPerformance, WorkerStatistics } from '../utility-types' -import { EMPTY_FUNCTION, isAsyncFunction, isPlainObject } from '../utils' +import { + DEFAULT_TASK_NAME, + EMPTY_FUNCTION, + isAsyncFunction, + isPlainObject +} from '../utils' import { type KillBehavior, KillBehaviors, @@ -20,7 +25,6 @@ import type { WorkerSyncFunction } from './worker-functions' -const DEFAULT_FUNCTION_NAME = 'default' const DEFAULT_MAX_INACTIVE_TIME = 60000 const DEFAULT_KILL_BEHAVIOR: KillBehavior = KillBehaviors.SOFT @@ -114,7 +118,7 @@ export abstract class AbstractWorker< } this.taskFunctions = new Map>() if (typeof taskFunctions === 'function') { - this.taskFunctions.set(DEFAULT_FUNCTION_NAME, taskFunctions.bind(this)) + this.taskFunctions.set(DEFAULT_TASK_NAME, taskFunctions.bind(this)) } else if (isPlainObject(taskFunctions)) { let firstEntry = true for (const [name, fn] of Object.entries(taskFunctions)) { @@ -125,7 +129,7 @@ export abstract class AbstractWorker< } this.taskFunctions.set(name, fn.bind(this)) if (firstEntry) { - this.taskFunctions.set(DEFAULT_FUNCTION_NAME, fn.bind(this)) + this.taskFunctions.set(DEFAULT_TASK_NAME, fn.bind(this)) firstEntry = false } } @@ -264,6 +268,7 @@ export abstract class AbstractWorker< const errorMessage = this.handleError(e as Error | string) this.sendToMainWorker({ taskError: { + name: message.name ?? DEFAULT_TASK_NAME, message: errorMessage, data: message.data }, @@ -287,7 +292,7 @@ export abstract class AbstractWorker< fn: WorkerAsyncFunction, message: MessageValue ): void { - let taskPerformance = this.beginTaskPerformance() + let taskPerformance = this.beginTaskPerformance(message.name) fn(message.data) .then(res => { taskPerformance = this.endTaskPerformance(taskPerformance) @@ -303,6 +308,7 @@ export abstract class AbstractWorker< const errorMessage = this.handleError(e as Error | string) this.sendToMainWorker({ taskError: { + name: message.name ?? DEFAULT_TASK_NAME, message: errorMessage, data: message.data }, @@ -321,10 +327,10 @@ export abstract class AbstractWorker< /** * Gets the task function in the given scope. * - * @param name - Name of the function that will be returned. + * @param name - Name of the task function that will be returned. */ private getTaskFunction (name?: string): WorkerFunction { - name = name ?? DEFAULT_FUNCTION_NAME + name = name ?? DEFAULT_TASK_NAME const fn = this.taskFunctions.get(name) if (fn == null) { throw new Error(`Task function '${name}' not found`) @@ -335,7 +341,7 @@ export abstract class AbstractWorker< private beginTaskPerformance (name?: string): TaskPerformance { this.checkStatistics() return { - name: name ?? DEFAULT_FUNCTION_NAME, + name: name ?? DEFAULT_TASK_NAME, timestamp: performance.now(), ...(this.statistics.elu && { elu: performance.eventLoopUtilization() }) }