Skip to content

Commit b55c0ff

Browse files
fix: Do not kill node worker if working
1 parent a11642b commit b55c0ff

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/nodeWorker.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { Logger } from './logger.js';
88
interface MyWorker extends Worker {
99
used?: boolean;
1010
toKill?: boolean;
11+
onMessage?: (msg: any) => void;
12+
onError?: (err: any) => void;
1113
}
1214

1315
const workers = new Map<string, MyWorker>();
@@ -48,7 +50,7 @@ async function runInWorker(input: {
4850
);
4951
}
5052

51-
worker.on('message', (msg) => {
53+
worker.onMessage = (msg) => {
5254
Logger.verbose(
5355
`[Function ${input.fuctionRequest.functionId}] [Worker ${input.fuctionRequest.workerId}] Worker message`,
5456
JSON.stringify(msg),
@@ -65,14 +67,14 @@ async function runInWorker(input: {
6567
worker.toKill = false;
6668
void worker.terminate();
6769
}
68-
});
69-
worker.on('error', (err) => {
70+
};
71+
worker.onError = (err) => {
7072
Logger.error(
7173
`[Function ${input.fuctionRequest.functionId}] [Worker ${input.fuctionRequest.workerId}] Error`,
7274
err,
7375
);
7476
reject(err);
75-
});
77+
};
7678

7779
worker.used = true;
7880
worker.postMessage({
@@ -106,7 +108,7 @@ function startWorker(input: WorkerRequest) {
106108

107109
const localProjectDir = getProjectDirname();
108110

109-
const worker = new Worker(
111+
const worker: MyWorker = new Worker(
110112
path.resolve(path.join(getModuleDirname(), `./nodeWorkerRunner.mjs`)),
111113
{
112114
env: {
@@ -138,6 +140,13 @@ function startWorker(input: WorkerRequest) {
138140

139141
workers.set(input.workerId, worker);
140142

143+
worker.on('message', (msg) => {
144+
worker?.onMessage?.(msg);
145+
});
146+
worker.on('error', (err) => {
147+
worker?.onError?.(err);
148+
});
149+
141150
return worker;
142151
}
143152

0 commit comments

Comments
 (0)