Skip to content

Commit 86fed21

Browse files
committed
feat: add parent port message to initial thread function
1 parent 362ce47 commit 86fed21

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

apps/api/src/instrument-records/export-worker.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ let initData: Map<
142142

143143
function handleInit(data: InitData) {
144144
initData = new Map(data.map((instrument) => [instrument.id, instrument]));
145-
return { success: true };
145+
146+
parentPort?.postMessage({ success: true });
146147
}
147148

148149
function handleChunkComplete(_data: ChunkCompleteData) {

apps/api/src/instrument-records/instrument-records.service.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,16 +264,26 @@ export class InstrumentRecordsService {
264264
};
265265
});
266266

267-
const initWorker = new Worker(join(__dirname, 'export-worker.ts'));
267+
const initWorkerPromise = new Promise<InitialMessage>((resolve, reject) => {
268+
const initWorker = new Worker(join(__dirname, 'export-worker.ts'));
268269

269-
initWorker.postMessage({ data: availableInstrumentArray, type: 'INIT' });
270+
initWorker.postMessage({ data: availableInstrumentArray, type: 'INIT' });
270271

271-
initWorker.on('message', (message: InitialMessage) => {
272-
if (!message.success) {
273-
throw Error('Initial thread failed');
274-
}
272+
initWorker.on('message', (message: InitialMessage) => {
273+
if (!message.success) {
274+
reject(new Error('Error in initial thread'));
275+
}
276+
resolve(message);
277+
void initWorker.terminate();
278+
});
275279
});
276280

281+
try {
282+
await initWorkerPromise;
283+
} catch (error) {
284+
console.error('Worker failed:', error);
285+
}
286+
277287
const workerPromises = chunks.map((chunk) => {
278288
return new Promise<InstrumentRecordsExport>((resolve, reject) => {
279289
const worker = new Worker(join(__dirname, 'export-worker.ts'));

0 commit comments

Comments
 (0)