Heim > PHP-Framework > Laravel > Hauptteil

So verwenden Sie die Laravel-Warteschlange

WBOY
Freigeben: 2023-05-26 18:38:07
Original
2643 Leute haben es durchsucht

Mit der kontinuierlichen Entwicklung der Internetbranche werden unsere Websites immer komplexer und auch die Anzahl der Besuche steigt. Bei hoher Parallelität ist die Verarbeitung einer großen Anzahl zeitaufwändiger Aufgaben eine sehr schwierige Aufgabe, die dazu führt, dass unser Unternehmen stecken bleibt und blockiert. Um dieses Problem zu lösen, stellt Laravel eine Warteschlangenfunktion bereit, mit der einige asynchrone und aufschiebbare Aufgaben bearbeitet werden können, damit Benutzer nicht das Gefühl haben, festzustecken. Als nächstes lernen wir, wie man die Laravel-Warteschlange verwendet.

1. Warteschlange installieren

#1. Warteschlangenpaket installieren

In Laravel wird die Warteschlange in das Laravel-Warteschlangenarbeitspaket eingefügt, das wir verwenden können Composer zum Installieren des Pakets:

composer require illuminate/queue

2. Warteschlangenanbieter hinzufügen

Laravel unterstützt mehrere Warteschlangen-Backends, einschließlich Datenbank, Redis , Beanstalkd usw. Wir müssen den Warteschlangenanbieter in config/queue.php konfigurieren. Zum Beispiel können wir den Redis-Warteschlangenanbieter verwenden:

'connections' => [

'redis' => [
    'driver' => 'redis',
    'connection' => 'default',
    'queue' => 'default',
    'retry_after' => 90,
    'block_for' => null,
],
Nach dem Login kopieren

],

2. Aufgaben erstellen# 🎜 🎜#

Queue ist für die Verarbeitung lang laufender Aufgaben konzipiert. Dabei kann es sich um jede Aufgabe oder jeden Befehl handeln. Wir können die Befehlszeile verwenden, um eine neue Warteschlangenaufgabe zu generieren:

php artisan make:job SendEmail

Die generierte Warteschlangenaufgabenklasse wird manuell im Verzeichnis app/Jobs abgelegt Die generierte SendEmail-Aufgabenklasse ist eine Basisklasse, die wie folgt aussieht:

namespace AppJobs;

use IlluminateBusQueueable;# 🎜 🎜#use IlluminateContractsQueueShouldQueue;

use IlluminateFoundationBusDispatchable;

use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;
#🎜🎜 #class SendEmail ShouldQueue
{

use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct()
{
    //
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    //
}
Nach dem Login kopieren
# 🎜 🎜#}

Wir können die spezifische Implementierungslogik der Aufgabe in die handle()-Methode schreiben.

3. Aufgaben in die Warteschlange verschieben

In Laravel können wir die statische Methode $dispatch() verwenden, um Aufgaben zur Warteschlange hinzuzufügen. Wir können diese Methode in einem Controller, einer Route oder irgendwo anders wie folgt verwenden:

use AppJobsSendEmail;

SendEmail::dispatch();

# 🎜🎜# Wir können die Verzögerung und den Namen der Warteschlange auch mithilfe der Methoden „delay()“ und „onQueue()“ der Warteschlange angeben.

Zum Beispiel: Schieben Sie die Aufgabe in die Warteschlange mit dem Namen „E-Mails“ und verarbeiten Sie sie nach 10 Sekunden:

SendEmail::dispatch()->onQueue('emails ' )->delay(now()->addSeconds(10));

4. Warteschlange ausführen

Wir haben die Aufgabe in die Warteschlange verschoben, jetzt brauchen wir Führen Sie die Warteschlange aus und verarbeiten Sie Aufgaben. In Laravel können wir den Artisan-Befehl verwenden, um den Warteschlangenprozessor zu starten:

php artisan queue:work

Standardmäßig verwendet der Warteschlangenprozessor den Namen „default“ Queue Anbieter. Mit der Option „--queue“ können wir die Warteschlange für die Prozessorverarbeitung festlegen. Um beispielsweise die E-Mail-Warteschlange zu verarbeiten:

php artisan queue:work --queue=emails

Wenn Sie alle verfügbaren Prozessoren verwenden möchten, um die Warteschlange der Reihe nach zu verarbeiten, Sie können die Option „- -daemon“ verwenden. Dadurch wird sichergestellt, dass der Betrieb des Prozessors nicht unterbrochen wird, selbst wenn ein Prozessor ausfällt.

php artisan queue:work --daemon

Es gibt viele andere Optionen für Warteschlangenprozessoren. Sie können den Befehl php artisan queue:work --help verwenden, um alle Optionen und zugehörigen Informationen anzuzeigen.

5. Zusammenfassung

Mit den oben genannten Schritten können wir eine große Anzahl zeitaufwändiger Aufgaben problemlos bewältigen und so die Effizienz verbessern und Reaktionsgeschwindigkeit der Anwendung. Wenn Sie mehr Details und Optionen zu Warteschlangen erfahren möchten, schauen Sie sich die offizielle Laravel-Dokumentation an.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Laravel-Warteschlange. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage