Wkhtmltopdf-Caching-Optionen in Laravel-Jobwarteschlangen verursachen KonfigurationsproblemePhp

PHP-Programmierer chatten hier
Guest
 Wkhtmltopdf-Caching-Optionen in Laravel-Jobwarteschlangen verursachen Konfigurationsprobleme

Post by Guest »

Ich verwende wkhtmltopdf in meiner Laravel-Anwendung, um PDFs zu generieren. Ich habe zwei verschiedene Funktionen, eine zum Drucken von Budgets und eine andere zum Drucken von Rechnungen. Diese werden als Jobwarteschlangen ausgeführt. Hier ist der Code für jede Funktion:
Budget-Druckcode:

Code: Select all

$pdf = WKPDF::loadHtml($pdf_html);

$pdf->setPaper('a4');
$pdf->setOption('disable-smart-shrinking', true);
$pdf->setOption('margin-top', 0);
$pdf->setOption('margin-right', 0);
$pdf->setOption('margin-bottom', 0);
$pdf->setOption('margin-left', 0);
$pdf->setOption('encoding', "UTF-8");
$pdf->setOption('orientation', 'landscape');
$pdf->setOption('load-error-handling', "ignore");
$pdf->setOption('enable-local-file-access', true);

$pdf->save(($upload_path) . '/' . $file_name);
Rechnungsdruckcode:

Code: Select all

$pdf = WKPDF::setOptions(['dpi' => 100, 'enable-local-file-access' => true, 'load-error-handling' => "ignore", 'encoding' => "UTF-8",])
->setPaper('a4', 'portrait')
->loadHTML($pdf_html)
->save($file_upload_path . '/' . $pdf_file_name);
Das Problem:
Wenn ich ein Budget-PDF erstelle, werden die Ränder wie konfiguriert auf 0 gesetzt. Diese Konfiguration scheint jedoch bestehen zu bleiben und wirkt sich auf den Rechnungsdruckprozess aus, der eine andere Rand- und Ausrichtungskonfiguration verwendet.
Dieses Problem wird behoben, wenn ich den Warteschlangenarbeiter manuell neu starte, aber ich möchte es vermeiden den Worker jedes Mal neu starten. Es scheint, dass wkhtmltopdf globale Einstellungen zwischenspeichert oder beibehält, was zu Konflikten zwischen den Jobs führt.
Was ich versucht habe:Ich habe überprüft, ob jeder Job WKPDF unabhängig initialisiert, aber das Problem besteht weiterhin.
Ein Neustart des Workers behebt das Problem vorübergehend, aber das ist keine ideale Lösung.
Die Funktion setOptions() im Rechnungsdruckcode Scheint die zwischengespeicherten Optionen aus dem Budget-Druckcode nicht zu überschreiben.
Was ich brauche:
Wie kann ich sicherstellen, dass jeder Auftrag mit ausgeführt wird? seine eigene wkhtmltopdf-Konfiguration, ohne von früheren Jobs beeinflusst zu werden? Gibt es eine Möglichkeit, Konfigurationen für wkhtmltopdf in Laravel-Jobwarteschlangen zurückzusetzen oder zu isolieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post