Laravel Queues: Hintergrundprozesse richtig umsetzen
Laravel Queues verstehen und richtig nutzen
Manche Aufgaben dauern zu lange für einen HTTP-Request: E-Mails versenden, PDFs generieren, externe APIs aufrufen, große Datenmengen verarbeiten. Dafür gibt es Queues.
Das Grundprinzip
Ein Job wird in die Queue geschrieben. Ein Queue-Worker verarbeitet ihn im Hintergrund. Der HTTP-Request antwortet sofort — ohne auf die langsame Aufgabe zu warten.
// Job dispatchen
ProcessInvoice::dispatch(\)->onQueue('invoices');
// Im Job
public function handle(): void
{
\->invoice->generatePdf();
Mail::to(\->invoice->customer)->send(new InvoiceMail(\->invoice));
}
Queue-Backends
- Database: Einfach einzurichten, gut für kleine Projekte
- Redis: Schnell, skalierbar, empfohlen für Produktion
- SQS: AWS-native, für große Setups
Horizon für Monitoring
Laravel Horizon gibt dir ein schönes Dashboard für deine Queue-Jobs. Durchsatz, Fehlerrate, Job-Dauer — alles auf einen Blick.