repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: cleanup cluster ESM issue workaround
[poolifier.git]
/
src
/
pools
/
cluster
/
fixed.ts
diff --git
a/src/pools/cluster/fixed.ts
b/src/pools/cluster/fixed.ts
index eadbfcfe4fa96af126629ab3a851d47c2b38e5d5..522e7b672abb09feb5700f7a854a00234889b103 100644
(file)
--- a/
src/pools/cluster/fixed.ts
+++ b/
src/pools/cluster/fixed.ts
@@
-60,13
+60,21
@@
export class FixedClusterPool<
}
/** @inheritDoc */
}
/** @inheritDoc */
- protected destroyWorkerNode (workerNodeKey: number): void {
+ protected async destroyWorkerNode (workerNodeKey: number): Promise<void> {
+ this.flushTasksQueue(workerNodeKey)
+ // FIXME: wait for tasks to be finished
const worker = this.workerNodes[workerNodeKey].worker
const worker = this.workerNodes[workerNodeKey].worker
- this.sendToWorker(workerNodeKey, { kill: true, workerId: worker.id })
+ const waitWorkerExit = new Promise<void>(resolve => {
+ worker.on('exit', () => {
+ resolve()
+ })
+ })
worker.on('disconnect', () => {
worker.kill()
})
worker.on('disconnect', () => {
worker.kill()
})
+ this.sendToWorker(workerNodeKey, { kill: true, workerId: worker.id })
worker.disconnect()
worker.disconnect()
+ await waitWorkerExit
}
/** @inheritDoc */
}
/** @inheritDoc */