Suche…


Einführung

Mithilfe von Warteschlangen kann Ihre Anwendung Zeitaufträge reservieren, die zeitaufwändig für die Verarbeitung durch einen Hintergrundprozess sind.

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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow