From e92820e12f289b4fd28b4ebc985b5b711777fc35 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sun, 7 Feb 2021 16:28:26 +0100 Subject: [PATCH] Parellized the chunks ref #5 --- src/PdfCreator.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index dd5f6b8..efd360c 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -54,24 +54,29 @@ export class PdfCreator { * @param runner The runner you want to generate the contracts for. * @param locale The locale used for the contracts (default:en) */ - public async generateSponsoringContract(runners: Runner[], locale: string = "en"): Promise { + public async generateSponsoringContract(runners: Runner[], locale: string = "en"): Promise { if (runners.length == 1 && Object.keys(runners[0]).length == 0) { runners[0] = this.generateEmptyRunner(); } if (runners.length > 100) { - let pdfs: Buffer[] = new Array(); + let pdf_promises = new Array>(); let i, j; for (i = 0, j = runners.length; i < j; i += 100) { let chunk = runners.slice(i, i + 100); - pdfs.push(await this.generateSponsoringContract(chunk, locale)); + pdf_promises.push(this.generateSponsoringContract(chunk, locale)); } + const pdfs = await Promise.all(pdf_promises); return await this.mergePdfs(pdfs); } + console.log("triggered") await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8'); const template = Handlebars.compile(template_source); const result = template({ runners }) - return await this.renderPdf(result, { format: "A5", landscape: true }); + console.log("finished: bars") + const pdf = await this.renderPdf(result, { format: "A5", landscape: true }); + console.log("finished: puppet") + return pdf } /**