X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=src%2Fworker%2Fabstract-worker.ts;h=f291c52428fee35bd384a845945d64de8ee539e3;hb=985d0e7986b2cad23bb08ae0561b2a6ff9afdf9e;hp=2a027269f990375f2a1556372a463e5b9f726655;hpb=ab80dc4621654ddd6f327ffec8db9a425e56e6d1;p=poolifier.git diff --git a/src/worker/abstract-worker.ts b/src/worker/abstract-worker.ts index 2a027269..f291c524 100644 --- a/src/worker/abstract-worker.ts +++ b/src/worker/abstract-worker.ts @@ -36,6 +36,10 @@ export abstract class AbstractWorker< Data = unknown, Response = unknown > extends AsyncResource { + /** + * Worker id. + */ + protected abstract id: number /** * Task function(s) processed by the worker when the pool's `execution` function is invoked. */ @@ -205,7 +209,7 @@ export abstract class AbstractWorker< * @returns The error message. */ protected handleError (e: Error | string): string { - return e as string + return e instanceof Error ? e.message : e } /** @@ -225,13 +229,15 @@ export abstract class AbstractWorker< this.sendToMainWorker({ data: res, taskPerformance, + workerId: this.id, id: message.id }) } catch (e) { - const err = this.handleError(e as Error) + const errorMessage = this.handleError(e as Error | string) this.sendToMainWorker({ taskError: { - message: err, + workerId: this.id, + message: errorMessage, data: message.data }, id: message.id @@ -258,15 +264,17 @@ export abstract class AbstractWorker< this.sendToMainWorker({ data: res, taskPerformance, + workerId: this.id, id: message.id }) return null }) .catch(e => { - const err = this.handleError(e as Error) + const errorMessage = this.handleError(e as Error | string) this.sendToMainWorker({ taskError: { - message: err, + workerId: this.id, + message: errorMessage, data: message.data }, id: message.id