Before parallelisation it used to take 35-40 minutes or sometimes it used to timeout. Also figured that header-footer append takes time when there is alot of pages like 15k and above pages. So any ways to parallelise headerfooter as well.!!
Posts made by ShashankHegde16
-
RE: Can We keep the page number upon merging the pdfs using pdf util
-
RE: Can We keep the page number upon merging the pdfs using pdf util
Yes.
"chrome": {
"timeout": 3600000,
"strategy": "chrome-pool",
"numberOfWorkers": "5"
},
changing to chrome pool from dedicated process and merging pdf from the afterrender hook parallel increased the performance. it takes now 5 minutes for 50k data with 4k pages, 30 mins for 17k pages but header footer merge is taking longer . Is there a way to optimize it? -
RE: Can We keep the page number upon merging the pdfs using pdf util
Thank you I have tried it but for dynamically appended one link is not clickable.
-
RE: Can We keep the page number upon merging the pdfs using pdf util
In order to overcome the issue of generation of a report for long table I have tried to call the same template parallelly based on the chunkSize. But when I do it Im not able to properly append the Table of content to the generated PDF. Also, performance wise it takes 30-45 mins. But in comparison with Crystal Reports it generates with in 1 min for 50k records as well. Please find the link of playground here https://playground.jsreport.net/w/anon/~duy8f7u. Could you please help with TOC part? Also for performance wise i shall try with div and changing strategy to chrome-pool with no of workers to 4 or 5
-
Can We keep the page number upon merging the pdfs using pdf util
Hi,
I have tried to call the same template in a recursive way to handle bulk data as a seperate template. But when I prepend to actual template the header, footer and page numbers are getting reset. Is there any way to handle it on pdfutil append?
-
RE: PDF of 2.6k page takes more than one hour to generate
Can we do lazy loading instead of one long iteration?
-
Can we use Ember Object in Handle bar
Hi ,
Is there a way we can use Ember Object with Handlebar in creating template?
-
RE: PDF of 2.6k page takes more than one hour to generate
I have sent an email with shashank16aug19@gmail.com with data json as well.
-
RE: PDF of 2.6k page takes more than one hour to generate
Protocol error: Connection closed. Most likely the page has been closed.
Error: Protocol error: Connection closed. Most likely the page has been closed.
at assert (/app/node_modules/puppeteer/lib/cjs/puppeteer/common/assert.js:26:15)
at Page.close (/app/node_modules/puppeteer/lib/cjs/puppeteer/common/Page.js:2115:32) -
RE: PDF of 2.6k page takes more than one hour to generate
I have resolved the long table css issue by removing the border collapse. Also, when we tested with 30k or 50k data we are getting js core page request closed error. Could you please help?
-
RE: PDF of 2.6k page takes more than one hour to generate
Is there a way where we can create sub report chunks of components and merge them ?
-
RE: PDF of 2.6k page takes more than one hour to generate
Upon trying with 1k data Full profile doesnt throw any error.
// Jan Blaha: I deleted the link to avoid leaking the data somewhere, but I have it.
-
RE: PDF of 2.6k page takes more than one hour to generate
2022-06-03T05:27:26.630Z - error: Error when processing render request 46 Maximum call stack size exceeded RangeError: Maximum call stack size exceeded
at createPatch (/app/node_modules/@jsreport/jsreport-core/lib/worker/render/diff.js:76:16)
at Profiler.emit (/app/node_modules/@jsreport/jsreport-core/lib/worker/render/profiler.js:87:24)Getting this error on running full profile with 18k data
-
PDF of 2.6k page takes more than one hour to generate
Re: Performance Rendering of report issue with 18-20k rows of data.
it took around 1 hour for 18k objects .Main template code ---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SAMPLE CIOMS II Case List</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<style>{{asset "./styles/main.css"}}</style>
</head>
<body>{{childTemplate (getTOCTemplate)}} <section style="page-break-before: always;"></section> <section id="CIOMS-II" class="padding-05"> {{{pdfCreatePagesGroup pageName="CIOMS-II" reportTitle=reportTitle }}} {{{pdfAddPageItem caseListFirstPage=true}}} {{component "./components/reportCriteria"}} <section style="page-break-before: always;"></section> {{component "./components/caseListView"}} </section>
</body>
--- Component code---
<section id="{{getPageNameSectionName reportId "case-list-view"}}">
{{{pdfAddPageItem id=(getPageNameSectionName reportId "case-list-view")}}}
<table class="case-list width-100 table-stripe" >
<thead class="case-list-header">
{{#each (getCaselistHeader)}}
<th class="case-list-header">{{this}}</th>
{{/each}}
</thead>
<tbody class="width-100">
{{#each caseList}}
<tr class="case-list-tr">
<td>
<p>{{caseNumber}}</p>
<p>{{studyId}}</p>
{{#if text}}
<label>Narrative: </label>
<p>{{text}}</p>
{{/if}}
</td>
<td>
<p>{{country}}</p>
<p>{{source}}</p>
</td>
<td>
<p>{{age}}</p>
<p>{{gender}}</p>
<p>{{patientId}}</p>
</td>
<td>
<p>{{suspectProd}}</p>
<p>{{route}}</p>
</td>
<td>
<p>{{dose}}</p>
</td>
<td>
<p>{{dateOfTreatment}}</p>
</td>
<td>
<p>{{tto}}</p>
</td>
{{!-- TODO add the value when known --}}
<td>
<p>-</p>
</td>
<td>
<p>{{outcome}}</p>
</td>
</tr>
{{/each}}
</tbody>
</table>
<table class="width-100">
<tr class="width-100">
<td class="text-bold">Total Number of Cases</td>
<td class="text-end text-bold">{{caseList.length}}</td>
</tr>
</table>
</section>caseList - Array of 18k objects.
Any idea how can i increase performance and make it generate in 5-10 mins?
my jsconfig looks like this below
{
"workers": {
"numberOfWorkers": "5"
},
"trustUserCode": true,
"store": {
"provider": "fs"
},
"blobStorage": {
"provider": "aws-s3-storage"
},
"reportTimeout": 3600000,
"templatingEngines": {
"timeout": 3600000,
"strategy": "dedicated-process"
},
"express": {
"inputRequestLimit": "1024mb"
},
"chrome": {
"timeout": 3600000,
"strategy":"dedicated-process",
"numberOfWorkers":"5"
},
"extensions": {
"fs-store": {
"dataDirectory": "data",
"externalModificationsSync": true
},
"scripts": {
"timeout": 3600000
},
"express": {
"renderTimeout": 3600000
},
"aws-s3-storage": {
"accessKeyId": "AKIA47ETWGM2OFFA5T6A",
"secretAccessKey": "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",
"bucket": "safety-bucket-local-02"
},
"studio": {
"title": "ConvergeHEALTH Safety",
"theme": {
"variables": {
"toolbar-backgroundColor": "#1480AF",
"entityTree-node-hover-backgroundColor": "#5CA8C5",
"tab-title-hover-backgroundColor": "#5CA8C5",
"entityTree-node-active-backgroundColor": "#5CA8C5",
"tab-title-active-backgroundColor": "#5CA8C5",
"entityIcon-color": "#1480AF",
"toolbar-target-backgroundColor": "#1480AF",
"toolbar-button-hover-backgroundColor": "#5CA8C5"
},
"logo": {
"type": "object",
"base64": {
"type": "png",
"content": "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"
}
}
}
}
}
} -
Performance Rendering of report issue with 18-20k rows of data.
Hi,
Recently we wanted to look for a better Report generation tool and we found that JSreport could be a better choice. We have deployed JSreport on ec2 instance of type R2.2xLarge system. But it is not able to render the report with more than 18-20k of data. Also, performance wise it is too slow. Could you please help us if we are missing any configs.