Ein großer Engpass, den ich im Moment habe, ist die PDF-Generierung jedes Mal, wenn jemand eine Bestellung aufgibt. Es ist keine große Sache für eine einzelne Bestellung, aber wenn es viel in einem kurzen Zeitrahmen gibt, ist dieser Prozess sehr langsam.
Das PDF benötigt Textinformationen, einen QR-Code, einen Barcode, ein Logo und 1 oder mehr (bis zu 20 +) 1/4-breite Bilder.
Aktueller Prozess mit DOMPDF:
Neuer Gedanke:
Das würde sich theoretisch um die QR- und Barcode-Bilder kümmern, aber trotzdem machen die restlichen Bilder es zu langsam.
Wenn Sie so vorgehen, ohne andere Bilder als die (QR und Barcode), kann die PDF in ~ 500ms erzeugt werden, aber sobald ich mit dem Hinzufügen von Bildern beginne, geht es auf 2, 3, 4, 5+ Sekunden jeweils.
Beim Ausführen von Tests und der Verarbeitung von ~ 10k Bestellungen (in ein paar Minuten) wurden die PDFs noch rund 12 Stunden später verarbeitet, bis ich sie einfach frustriert heruntergefahren habe.
Das PDF wird in einem separaten Warteschlangenprozess generiert, so dass die Person nicht auf die Bestellung warten muss, aber - es kann immer noch nicht mehr als 5 Stunden dauern, bis sie ihre Bestätigungs-PDF bei hohem Traffic erhalten.
Fragen / TLDR:
Wie kann ich meinen Prozess zum Erstellen von PDFs mit einem dynamischen QR-Code, einem dynamischen Barcode, dynamischem Text und statischen 1-20-Bildern (Bilder sind in allen PDFs gleich) schneller machen?
Gibt es andere mögliche Dinge, an die ich nicht gedacht habe? Vielleicht ein Template-PDF erstellen und irgendwie PHP verwenden, um nur die dynamischen Spots auszufüllen?
Ich würde Ihnen dringend empfehlen, die TCPDF-Bibliothek zu verwenden. Es ist ziemlich schnell und kann leicht in CakePHP integriert werden. Sie können viele Beispiele dafür finden, wie Sie Bilder, Barcodes und QR-Codes in PDFDF-Beispiele Seite einfügen können.
Um die Leistung weiter zu verbessern, verwenden Sie Tipps von dieser Seite:
Wenn dies die Leistung nicht auf das akzeptable Niveau verbessert, können Sie Ihre CakePHP-Anwendung (oder nur das Skript, das die Generierung von PDFs ausführt, wenn CakePHP nicht verwendet wird) auf einem zweiten Server mit mehr verfügbaren Ressourcen installieren und verwenden Server nur für die PDF-Generierung.
Tags und Links php pdf performance cakephp cakephp-2.5