我目前遇到的一个大瓶颈是每次有人下订单时生成 PDF。单单没什么大不了的,但是在短时间内有很多的时候,这个过程就很慢了。
PDF 需要文本信息、二维码、条形码、徽标和 1 个或更多(最多 20+)1/4 宽的图像。
带有 DOMPDF 的当前流程:
- 使用 PHP 创建并保存为 png 的 QR 码图像
- 创建并保存为 png 的条码图像
- DomPDF 生成 PDF
新思路:
- HTML2PDF 创建 PDF,并使用它的 qr 和条形码标签生成条形码
从理论上讲,这将处理 QR 和条形码图像,但仍然,其余图像使其太慢。
这样做,除了(QR 和条形码)之外没有任何图像,PDF 可以在大约 500 毫秒内生成,但是一旦我开始添加图像,它就会上升到 2、3、4、5+ 秒。
在运行测试并处理大约 10k 个订单(在几分钟内)时,大约 12 小时后它仍在处理 PDF,直到我沮丧地关闭它。
PDF 是在一个单独的队列过程中生成的,因此该人在订购时不必等待,但是 - 仍然......他们不会需要 5 多个小时才能在高流量期间收到他们的确认 PDF。
问题/ TLDR:
如何更快地创建包含动态二维码、动态条形码、动态文本和 1-20 个静态图像(所有 PDF 中的图像相同)的 PDF 的过程?
还有其他我没有想到的潜在事情吗?也许制作一个模板 PDF 并以某种方式使用 PHP 来填充动态点?