我的网络应用程序触发批处理文件。 批处理文件将触发一个简单的java,它会命中数据库,并带来带有ID的2000条记录。
将有2000个xml文件与ID的名称匹配,它会读取一个文件并将其传递给JRXML。从JRXML开始,它以PDF格式生成。将PDF存储在指定的路径中。 要生成1个PDF文件,需要30秒。但是当我在循环中运行2000条记录时。这需要14个小时才能完成。
任何最好的设计来实现这一目标?或者您的输入很有用
document = JRXmlUtils.parse(JRLoader.getLocationInputStream("D:/StoxxComponents/XMLMergeOut/DK5NY_11.xml")); // file name will be dynamically changing.
JRXmlDataSource jrds = new JRXmlDataSource(document, "/factsheet");
InputStream input = new FileInputStream("D:/StoxxComponents/Jrxml" + "/"
+ "Template1-MainReport.jrxml"); // this is static
// load the input file
JasperDesign jasperDesign = JRXmlLoader.load(input);
// Compiling Report Designs
JasperReport jasperReport = JasperCompileManager
.compileReport(jasperDesign);
// Creating JasperPrint Object
JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, null, jrds);
// Exporting the report
OutputStream PDF_OUTPUT = new FileOutputStream(new File("D:/StoxxComponents/GeneratedPDF/test"+index+".pdf"));
JasperExportManager.exportReportToPdfStream(jasperPrint, PDF_OUTPUT);
这将在for循环中执行2000次。所以需要14个小时。生成1个PDF需要30秒。
请建议如何调整此代码和逻辑。