Skip to content

Commit bd044fb

Browse files
committed
feat: make init data and chuck processing be done on the same thread
1 parent 86fed21 commit bd044fb

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -287,15 +287,21 @@ export class InstrumentRecordsService {
287287
const workerPromises = chunks.map((chunk) => {
288288
return new Promise<InstrumentRecordsExport>((resolve, reject) => {
289289
const worker = new Worker(join(__dirname, 'export-worker.ts'));
290-
worker.postMessage({ data: chunk, type: 'CHUNK_COMPLETE' });
291-
worker.on('message', (message: WorkerMessage) => {
290+
worker.postMessage({ data: availableInstrumentArray, type: 'INIT' });
291+
worker.on('message', (message: InitialMessage) => {
292292
if (message.success) {
293-
resolve(message.data);
294-
} else {
295-
reject(new Error(message.error));
293+
worker.postMessage({ data: chunk, type: 'CHUNK_COMPLETE' });
294+
worker.on('message', (message: WorkerMessage) => {
295+
if (message.success) {
296+
resolve(message.data);
297+
} else {
298+
reject(new Error(message.error));
299+
}
300+
void worker.terminate();
301+
});
296302
}
297-
void worker.terminate();
298303
});
304+
299305
worker.on('error', (error) => {
300306
reject(error);
301307
void worker.terminate();

0 commit comments

Comments
 (0)