Suche…
Einführung
Anwendungsfälle
Wenn Sie beispielsweise eine E-Mail an einen Kunden senden, nachdem Sie eine Aufgabe gestartet haben, leiten Sie den Benutzer sofort auf die nächste Seite um, während Sie die E-Mail in die Warteschlange stellen, um sie im Hintergrund zu senden. Dies beschleunigt die Ladezeit für die nächste Seite, da das Senden einer E-Mail manchmal mehrere Sekunden oder länger dauern kann.
Ein anderes Beispiel wäre die Aktualisierung eines Lagersystems, nachdem ein Kunde mit seiner Bestellung ausgecheckt hat. Anstatt auf den Abschluss der API-Aufrufe zu warten, was einige Sekunden dauern kann, können Sie den Benutzer sofort zur Seite "Checkout-Erfolg" umleiten, während die API-Aufrufe im Hintergrund in die Warteschlange gestellt werden.
Warteschlangentreiberkonfiguration
Jeder Warteschlangentreiber von Laravel wird über die Datei config/queue.php
konfiguriert. Ein Warteschlangentreiber ist der Handler, mit dem verwaltet wird, wie ein Auftrag in der Warteschlange ausgeführt wird, ob die Aufträge erfolgreich waren oder fehlgeschlagen sind, und der Auftrag wird erneut versucht, sofern dies konfiguriert ist.
Laravel unterstützt standardmäßig die folgenden Warteschlangentreiber:
sync
Sync oder synchron ist der Standard-Warteschlangentreiber, der einen Job in der Warteschlange in Ihrem vorhandenen Prozess ausführt. Wenn dieser Treiber aktiviert ist, haben Sie praktisch keine Warteschlange, da der Job in der Warteschlange sofort ausgeführt wird. Dies ist für lokale oder Testzwecke hilfreich, wird jedoch offensichtlich nicht für die Produktion empfohlen, da dadurch der Leistungsvorteil beim Einrichten der Warteschlange entfällt.
database
Dieser Treiber speichert Aufträge in der Warteschlange in der Datenbank. Bevor Sie diesen Treiber aktivieren, müssen Sie Datenbanktabellen erstellen, um Ihre in der Warteschlange befindlichen und fehlgeschlagenen Jobs zu speichern:
php artisan queue:table
php artisan migrate
sqs
Dieser Warteschlangentreiber verwendet den Simple Queue Service von Amazon zum Verwalten von Jobs in der Warteschlange. Bevor Sie diesen Job aktivieren, müssen Sie das folgende Composer-Paket installieren: aws/aws-sdk-php ~3.0
Beachten Sie auch, dass Amazon SQS bei einer Verzögerung von Warteschlangenjobs nur eine maximale Verzögerung von 15 Minuten unterstützt.
iron
Diese Warteschlangentreiber verwenden Iron zum Verwalten von Jobs in der Warteschlange.
redis
Dieser Warteschlangentreiber verwendet eine Instanz von Redis zum Verwalten von Jobs in der Warteschlange. Bevor Sie diesen Warteschlangentreiber verwenden, müssen Sie eine Kopie von Redis konfigurieren und die folgende Abhängigkeit vom predis/predis ~1.0
installieren: predis/predis ~1.0
beanstalkd
Dieser Warteschlangentreiber verwendet eine Instanz von Beanstalk zum Verwalten von Jobs in der Warteschlange. Bevor Sie diesen Warteschlangentreiber verwenden, müssen Sie eine Kopie von Beanstalk konfigurieren und die folgende Composer-Abhängigkeit installieren: pda/pheanstalk ~3.0
null
Durch die Angabe von null als Warteschlangentreiber werden alle Aufträge in der Warteschlange gelöscht.