mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
added a lot of debugging logs - revert this
This commit is contained in:
parent
d580993d28
commit
5f4abe760d
2 changed files with 18 additions and 6 deletions
|
@ -187,14 +187,20 @@ export class PdfMaker {
|
|||
}
|
||||
|
||||
public async generate(): Promise<Uint8Array> {
|
||||
console.log('===================> start');
|
||||
if (this.worker) throw new Error('PDF generation already in progress!');
|
||||
|
||||
console.log('===================> logging info');
|
||||
this.logger.info(`Compiling PDF using "${this.layout.id}" layout...`);
|
||||
|
||||
try {
|
||||
console.log('===================> starting promise');
|
||||
return await new Promise<Uint8Array>((resolve, reject) => {
|
||||
console.log('===================> creating message channel');
|
||||
const { port1: myPort, port2: theirPort } = new MessageChannel();
|
||||
console.log('===================> creating new worker');
|
||||
this.worker = this.createWorker(theirPort);
|
||||
console.log('===================> attaching listeners to worker');
|
||||
this.worker.on('error', (workerError: NodeJS.ErrnoException) => {
|
||||
if (workerError.code === 'ERR_WORKER_OUT_OF_MEMORY') {
|
||||
reject(new errors.PdfWorkerOutOfMemoryError(workerError.message));
|
||||
|
@ -204,14 +210,9 @@ export class PdfMaker {
|
|||
});
|
||||
this.worker.on('exit', () => {}); // do nothing on errors
|
||||
|
||||
// Send the initial request
|
||||
const generatePdfRequest: GeneratePdfRequest = {
|
||||
data: this.getGeneratePdfRequestData(),
|
||||
};
|
||||
myPort.postMessage(generatePdfRequest);
|
||||
|
||||
// We expect one message from the worker generating the PDF buffer.
|
||||
myPort.on('message', ({ error, data }: GeneratePdfResponse) => {
|
||||
console.log('===================> got result back');
|
||||
if (error) {
|
||||
reject(new Error(`PDF worker returned the following error: ${error}`));
|
||||
return;
|
||||
|
@ -223,6 +224,12 @@ export class PdfMaker {
|
|||
this.pageCount = data.metrics.pages;
|
||||
resolve(data.buffer);
|
||||
});
|
||||
const generatePdfRequest: GeneratePdfRequest = {
|
||||
data: this.getGeneratePdfRequestData(),
|
||||
};
|
||||
console.log('===================> sending new generate request');
|
||||
// Send the request to generate
|
||||
myPort.postMessage(generatePdfRequest);
|
||||
});
|
||||
} finally {
|
||||
await this.cleanupWorker();
|
||||
|
|
|
@ -53,6 +53,7 @@ export interface ErrorResponse {
|
|||
|
||||
if (!isMainThread) {
|
||||
const { port } = workerData as WorkerData;
|
||||
console.log('WORKER=============> listening for work...');
|
||||
port.on('message', execute);
|
||||
}
|
||||
|
||||
|
@ -67,6 +68,7 @@ const getPageCount = (pdfDoc: PDFKit.PDFDocument): number => {
|
|||
};
|
||||
|
||||
async function execute({ data: { layout, logo, title, content } }: GeneratePdfRequest) {
|
||||
console.log('WORKER=============> got work!');
|
||||
const { port } = workerData as WorkerData;
|
||||
try {
|
||||
const tableBorderWidth = 1;
|
||||
|
@ -95,6 +97,7 @@ async function execute({ data: { layout, logo, title, content } }: GeneratePdfRe
|
|||
content,
|
||||
});
|
||||
|
||||
console.log('WORKER=============> creating pdf doc!');
|
||||
const pdfDoc = printer.createPdfKitDocument(docDefinition, {
|
||||
tableLayouts: {
|
||||
noBorder: {
|
||||
|
@ -113,6 +116,7 @@ async function execute({ data: { layout, logo, title, content } }: GeneratePdfRe
|
|||
throw new Error('Document stream has not been generated');
|
||||
}
|
||||
|
||||
console.log('WORKER=============> creating buffer!');
|
||||
const buffer = await new Promise<Buffer>((resolve, reject) => {
|
||||
const buffers: Buffer[] = [];
|
||||
pdfDoc.on('error', reject);
|
||||
|
@ -133,6 +137,7 @@ async function execute({ data: { layout, logo, title, content } }: GeneratePdfRe
|
|||
},
|
||||
},
|
||||
};
|
||||
console.log('WORKER=============> posting result back!');
|
||||
port.postMessage(successResponse, [buffer.buffer /* Transfer buffer instead of copying */]);
|
||||
} catch (error) {
|
||||
const errorResponse: ErrorResponse = { error: error.message, data: null };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue