Большим узким местом, которое у меня есть на данный момент, является генерация PDF каждый раз, когда кто-то размещает заказ. Для единичного заказа это не имеет большого значения, но когда их много в короткие сроки, этот процесс идет очень медленно.
Для PDF требуется текстовая информация, QR-код, штрих-код, логотип и 1 или более (до 20+) изображений шириной 1/4.
Текущий процесс с DOMPDF:
- Изображение QR-кода, созданное с помощью PHP и сохраненное как png
- Изображение штрих-кода создано и сохранено в формате png
- DomPDF генерирует PDF
Новая мысль:
- HTML2PDF создает PDF и использует теги qr и штрих-кода для создания штрих-кодов.
Теоретически это позаботится об изображениях QR и штрих-кода, но все же остальные изображения делают его слишком медленным.
Делая это таким образом, без каких-либо изображений, кроме (QR и штрих-кода), PDF-файл может генерироваться примерно за 500 мс, но как только я начинаю добавлять изображения, это занимает до 2, 3, 4, 5+ секунд каждое.
При выполнении тестов и обработке ~ 10 000 заказов (за несколько минут) он все еще обрабатывал PDF-файлы примерно через 12 часов, пока я просто не закрыл его в отчаянии.
PDF-файл генерируется в отдельном процессе очереди, поэтому человеку не нужно ждать при заказе, но, тем не менее, ему не может потребоваться 5+ часов, чтобы получить PDF-файл с подтверждением во время большого трафика.
Вопросы/TLDR:
Как ускорить процесс создания PDF-файлов с динамическим qr-кодом, динамическим штрих-кодом, динамическим текстом и 1–20 статическими изображениями (изображения одинаковы во всех PDF-файлах)?
Есть ли другие потенциальные вещи, о которых я не подумал? Может быть, сделать шаблон PDF и каким-то образом использовать PHP, чтобы просто заполнить динамические места?