repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: ensure task error proper throw with worker-threads
[poolifier.git]
/
src
/
worker
/
abstract-worker.ts
diff --git
a/src/worker/abstract-worker.ts
b/src/worker/abstract-worker.ts
index 2a027269f990375f2a1556372a463e5b9f726655..f291c52428fee35bd384a845945d64de8ee539e3 100644
(file)
--- 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 {
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.
*/
/**
* 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 {
* @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,
this.sendToMainWorker({
data: res,
taskPerformance,
+ workerId: this.id,
id: message.id
})
} catch (e) {
id: message.id
})
} catch (e) {
- const err
= this.handleError(e as Error
)
+ const err
orMessage = this.handleError(e as Error | string
)
this.sendToMainWorker({
taskError: {
this.sendToMainWorker({
taskError: {
- message: err,
+ workerId: this.id,
+ message: errorMessage,
data: message.data
},
id: message.id
data: message.data
},
id: message.id
@@
-258,15
+264,17
@@
export abstract class AbstractWorker<
this.sendToMainWorker({
data: res,
taskPerformance,
this.sendToMainWorker({
data: res,
taskPerformance,
+ workerId: this.id,
id: message.id
})
return null
})
.catch(e => {
id: message.id
})
return null
})
.catch(e => {
- const err
= this.handleError(e as Error
)
+ const err
orMessage = this.handleError(e as Error | string
)
this.sendToMainWorker({
taskError: {
this.sendToMainWorker({
taskError: {
- message: err,
+ workerId: this.id,
+ message: errorMessage,
data: message.data
},
id: message.id
data: message.data
},
id: message.id