我目前遇到的一个大瓶颈是,每次有人下订单时都会生成PDF格式。对于一个订单来说,这并不是什么大问题,但是当在短时间内有很多订单时,这个过程是非常缓慢的。
PDF需要文本信息、QR代码、条形码、徽标和1/4宽的图像(最多可达20+)。
电流处理w/ DOMPDF:
新思维:
理论上,这将处理QR和条形码图像,但其馀的图像使其速度太慢。
这样做,除了QR和条形码之外,没有任何其他图像,PDF可以在大约500 as内生成,但是一旦我开始添加图像,它就会增加到2,3,4,5+秒。
当运行测试和处理~10k订单时(几分钟内),大约12小时后,它仍然在处理PDF,直到我沮丧地关闭了它。
PDF是在一个单独的队列过程中生成的,因此在订购时,这个人不需要等待,但是-仍然.在高流量情况下,他们不能用5+小时来接收他们的确认PDF。
问题/ TLDR:
如何使使用动态qr代码、动态条形码、动态文本和1-20静态图像(所有PDF之间的图像相同)创建PDF的过程更快?
还有其他我没想过的潜在的事情吗?也许可以制作一个PDF模板,并以某种方式使用PHP来填充动态点?
发布于 2014-09-16 21:19:55
我强烈建议您使用TCPDF库。它非常快,可以很容易地集成到CakePHP中。您可以在TCPDF示例页面中找到许多示例,说明如何将图像、条形码和QR代码包含到PDF中。
要进一步提高性能,请使用这页面中的提示:
如果这样做不能将性能提高到可接受的水平,您可以将CakePHP应用程序(或者只是运行生成PDF的脚本(如果它不使用CakePHP)安装在另一个具有更多可用资源的服务器上,并且只使用该服务器进行PDF生成。
发布于 2018-06-04 14:56:48
如果不需要透明性,可以尝试使用JPEG而不是PNG文件。
例如,在TCPDF中,我必须生成一个背景有一个大PNG的PDF (18厘米x18厘米,300 PNG)。在生成文件之前,我必须等待11秒钟。我用同样大小的JPEG和DPI替换了图像,用了不到1秒的时间。
发布于 2017-02-11 06:31:43
TCPDF对图像的处理也非常慢。
https://stackoverflow.com/questions/25859506
复制相似问题