repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into elu-strategy
[poolifier.git]
/
src
/
worker
/
abstract-worker.ts
diff --git
a/src/worker/abstract-worker.ts
b/src/worker/abstract-worker.ts
index 7805514a7b3b083385b96ac4d26218840b625b31..a84bb0691fc588d3a8e51b0fe1696d7c85bb7dc9 100644
(file)
--- a/
src/worker/abstract-worker.ts
+++ b/
src/worker/abstract-worker.ts
@@
-146,7
+146,9
@@
export abstract class AbstractWorker<
*
* @param message - Message received.
*/
*
* @param message - Message received.
*/
- protected messageListener (message: MessageValue<Data, MainWorker>): void {
+ protected messageListener (
+ message: MessageValue<Data, Data, MainWorker>
+ ): void {
if (message.id != null && message.data != null) {
// Task message received
const fn = this.getTaskFunction(message.name)
if (message.id != null && message.data != null) {
// Task message received
const fn = this.getTaskFunction(message.name)
@@
-185,7
+187,9
@@
export abstract class AbstractWorker<
*
* @param message - The response message.
*/
*
* @param message - The response message.
*/
- protected abstract sendToMainWorker (message: MessageValue<Response>): void
+ protected abstract sendToMainWorker (
+ message: MessageValue<Response, Data>
+ ): void
/**
* Checks if the worker should be terminated, because its living too long.
/**
* Checks if the worker should be terminated, because its living too long.
@@
-220,7
+224,7
@@
export abstract class AbstractWorker<
message: MessageValue<Data>
): void {
try {
message: MessageValue<Data>
): void {
try {
- let taskPerformance = this.beginTaskPerformance(
message
)
+ let taskPerformance = this.beginTaskPerformance()
const res = fn(message.data)
taskPerformance = this.endTaskPerformance(taskPerformance)
this.sendToMainWorker({
const res = fn(message.data)
taskPerformance = this.endTaskPerformance(taskPerformance)
this.sendToMainWorker({
@@
-231,8
+235,10
@@
export abstract class AbstractWorker<
} catch (e) {
const err = this.handleError(e as Error)
this.sendToMainWorker({
} catch (e) {
const err = this.handleError(e as Error)
this.sendToMainWorker({
- error: err,
- errorData: message.data,
+ taskError: {
+ message: err,
+ data: message.data
+ },
id: message.id
})
} finally {
id: message.id
})
} finally {
@@
-250,7
+256,7
@@
export abstract class AbstractWorker<
fn: WorkerAsyncFunction<Data, Response>,
message: MessageValue<Data>
): void {
fn: WorkerAsyncFunction<Data, Response>,
message: MessageValue<Data>
): void {
- let taskPerformance = this.beginTaskPerformance(
message
)
+ let taskPerformance = this.beginTaskPerformance()
fn(message.data)
.then(res => {
taskPerformance = this.endTaskPerformance(taskPerformance)
fn(message.data)
.then(res => {
taskPerformance = this.endTaskPerformance(taskPerformance)
@@
-264,8
+270,10
@@
export abstract class AbstractWorker<
.catch(e => {
const err = this.handleError(e as Error)
this.sendToMainWorker({
.catch(e => {
const err = this.handleError(e as Error)
this.sendToMainWorker({
- error: err,
- errorData: message.data,
+ taskError: {
+ message: err,
+ data: message.data
+ },
id: message.id
})
})
id: message.id
})
})
@@
-289,13
+297,9
@@
export abstract class AbstractWorker<
return fn
}
return fn
}
- private beginTaskPerformance (message: MessageValue<Data>): TaskPerformance {
- const timestamp = performance.now()
+ private beginTaskPerformance (): TaskPerformance {
return {
return {
- timestamp,
- ...(this.statistics.waitTime && {
- waitTime: timestamp - (message.timestamp ?? timestamp)
- }),
+ timestamp: performance.now(),
...(this.statistics.elu && { elu: performance.eventLoopUtilization() })
}
}
...(this.statistics.elu && { elu: performance.eventLoopUtilization() })
}
}