In Laravel ist eine Warteschlange eine lineare Tabelle mit eingeschränkten Operationen. Sie erlaubt nur Löschvorgänge am vorderen Ende der Tabelle (Warteschlangenkopf) und Einfügevorgänge am hinteren Ende der Tabelle (Warteschlangenende). , Entwicklung Der Benutzer kann die Bearbeitung zeitaufwändiger Aufgaben auf einen späteren Zeitpunkt verschieben, was die Reaktionsgeschwindigkeit von Webanfragen erheblich verbessern kann.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Laravel 6-Version, Dell G3-Computer.
Die Verwendung von Warteschlangen in Laravel
1. Was ist eine Warteschlange? Eine Warteschlange ist eine lineare Tabelle mit eingeschränkten Operationen der Tabelle und Einfügevorgänge werden im Backend der Tabelle ausgeführt. Das Ende, das den Einfügevorgang ausführt, wird als Ende der Warteschlange bezeichnet, und das Ende, das den Löschvorgang ausführt, wird als Kopf der Warteschlange bezeichnet. Mit Warteschlangen können Sie die Bearbeitung zeitaufwändiger Aufgaben (z. B. das Versenden von E-Mails) auf einen späteren Zeitpunkt verschieben. Die Verzögerung dieser zeitaufwändigen Aufgaben kann die Reaktionsgeschwindigkeit von Webanfragen erheblich verbessern.
2. Vorteile
Entkopplung: Die Nachrichtenwarteschlange kann das System entkoppeln, die Reaktionsgeschwindigkeit verbessern und die Systemfunktionen werden nach innen aggregiert und nach außen geöffnet;
Asynchron: die Nachrichtenwarteschlange kann asynchron zum System sein. Funktionen werden entfernt, um die funktionale Kopplung zu reduzieren und die Entwicklungseffizienz zu verbessern. Konfiguration
-
Warteschlangenkonfigurationsdatei Gespeichert in config/queue.php. In dieser Datei finden Sie die Verbindungskonfiguration für jeden im Framework enthaltenen Warteschlangentreiber, einschließlich Datenbank, Beanstalkd, Amazon SQS, Redis und einen Synchronisierungstreiber (Sync – für die lokale Verwendung).
Redis wird hier als Treiber verwendet und Redis und zugehörige Erweiterungen müssen installiert werden. - 4. Aufgabe
Wir müssen etwas in die Warteschlange stellen, wir können es eine Aufgabe nennen. Das Erstellen von Aufgaben im Laravel-Framework stellt uns die folgenden Befehle zur Verfügung: php artisan make:job TestJob
TestJob.php
namespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldBeUnique;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use Illuminate\Support\Facades\DB;use Symfony\Polyfill\Intl\Idn\Info;class TestJob implements ShouldQueue{ use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { // } /** * Execute the job. * * @return void */ public function handle() {// \Log::info('hhh'); DB::connection('test') ->table('master') ->insert([ 'name'=>'小白', 'email'=>'123@qq.com' ]); }}
5. VerteilungSobald die Aufgabenklasse geschrieben ist, können Sie die Versandmethode der Aufgabe selbst verwenden um es zu versenden. Die an die Dispatch-Methode übergebenen Parameter werden an den Konstruktor der Aufgabe übergeben. :Onqueue: Warteschlange angeben;
Dlay: Warteschlange verzögern;#在路由中简单调用 Route::get('queue',function(){ \App\Jobs\TestJob::dispatch(); // \App\Jobs\TestJob::dispatch()->onQueue('qq'); });Verbrauch in der Warteschlange verfügt über einen Warteschlangenprozessor um neu in die Warteschlange verschobene Aufgaben zu verarbeiten. Starten Sie den Warteschlangenprozessor mit dem Artisan-Befehl queue:work. Es ist zu beachten, dass der Befehl queue:work, sobald er gestartet wurde, so lange ausgeführt wird, bis er manuell gestoppt wird oder Sie Ihr Terminal schließen:
php artisan queue:work
php artisan queue:work --once Parameter hinzufügen, konsumieren Geben Sie die Warteschlange an#消费qq队列
php artisan queue:work --queue=qq
Sie können sehen, dass der Datenbank zwei neue Daten hinzugefügt wurden und die Daten in Redis verbraucht wurden
Wir führen das Routing erneut aus
7. Ereigniswarteschlange
Die Warteschlange wird normalerweise zur Bearbeitung verzögerter Aufgaben verwendet, und Ereignisse werden von der Geschäftslogik verarbeitet. Ereignisauslöser in Laravel werden zur asynchronen Geschäftsverarbeitung an Warteschlangen verteilt, sodass Sie schnell reagieren können, ohne in Echtzeit auf die Ausführungsergebnisse warten zu müssen, bevor Sie den Benutzern prompte Nachrichten übermitteln. Wenn wir das Geschäft im Ereignis in der Warteschlange speichern müssen, müssen wir die Warteschlange nicht neu verteilen. Wir können die IlluminateContractsQueueShouldQueue-Schnittstelle direkt im entsprechenden Listener implementieren.
Ereignisse und Listener erstellen
php artisan make:event TestEvent php artisan make:listener TestListener
Registrieren Sie sich in appprovidersEventServiceProvider.php
TestListener.php
namespace App\Listeners; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Facades\DB; class TestListener implements ShouldQueue { /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param object $event * @return void */ public function handle() { DB::connection('test') ->table('master') ->insert([ 'name'=>'小黑', 'email'=>'234@qq.com' ]); } }
Route ausführen
Route::get('queue',function(){ //\App\Jobs\TestJob::dispatch(); //指定队列名称 //\App\Jobs\TestJob::dispatch()->onQueue('qq'); return event(new \App\Events\TestEvent()); });
【Verwandte Empfehlungen: Laravel-Video-Tutorial】
Das obige ist der detaillierte Inhalt vonWas ist eine Laravel-Warteschlange?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Laravel optimiert den Webentwicklungsprozess, einschließlich: 1. Verwenden Sie das Routing -System, um die URL -Struktur zu verwalten; 2. Verwenden Sie die Blade Template Engine, um die Ansichtsentwicklung zu vereinfachen. 3.. Tätigen Sie zeitaufwändige Aufgaben durch Warteschlangen; V. 5. Befolgen Sie die Best Practices, um die Codequalität und -wartbarkeit zu verbessern.

Laravel ist ein modernes PHP -Framework, das ein leistungsstarkes Werkzeugsatz bietet, Entwicklungsprozesse vereinfacht und die Wartbarkeit und Skalierbarkeit von Code verbessert. 1) eloquentorm vereinfacht die Datenbankoperationen; 2) Blade Template Engine macht Front-End-Entwicklung intuitiv; 3) Werkzeuge der Handwerksanlage verbessern die Entwicklungseffizienz; 4) Die Leistungsoptimierung umfasst die Verwendung von eifriglosen, Caching -Mechanismus, nach MVC -Architektur, Warteschlangenverarbeitungs- und Schreiben von Testfällen.

Die MVC -Architektur von Laravel verbessert die Struktur und Wartbarkeit des Codes durch Modelle, Ansichten und Controller zur Trennung von Datenlogik, Präsentation und Geschäftsverarbeitung. 1) Das Modell verarbeitet Daten, 2) Die Ansicht ist für die Anzeige verantwortlich, 3) Die Controller verarbeitet Benutzereingabe und Geschäftslogik. Diese Architektur ermöglicht es Entwicklern, sich auf die Geschäftslogik zu konzentrieren und zu vermeiden, dass sie in den Codemire fallen.

Laravel ist ein PHP -Framework, das auf der MVC -Architektur basiert, mit präziser Syntax, leistungsstarken Befehlszeilen -Tools, bequemer Datenbetrieb und flexibler Template -Engine. 1. Elegante Syntax und benutzerfreundliche API machen die Entwicklung schnell und einfach zu bedienen. 2. Artisan Command Line Tool vereinfacht die Codegenerierung und die Datenbankverwaltung. 3.eloquentorm macht die Datenoperation intuitiv und einfach. V.

Laravel eignet sich zum Aufbau von Backend -Diensten, da es elegante Syntax, umfangreiche Funktionen und starke Unterstützung für die Gemeinschaft bietet. 1) Laravel basiert auf der MVC -Architektur und vereinfacht den Entwicklungsprozess. 2) Es enthält eloquentorm und optimiert Datenbankvorgänge. 3) Das Ökosystem von Laravel bietet Werkzeuge wie Handwerks-, Blade- und Routing -Systeme zur Verbesserung der Entwicklungseffizienz.

In dieser Zeit des kontinuierlichen technologischen Fortschritts ist das Mastering Advanced Frameworks für moderne Programmierer von entscheidender Bedeutung. Dieser Artikel hilft Ihnen dabei, Ihre Entwicklungsfähigkeiten zu verbessern, indem Sie wenig bekannte Techniken im Laravel-Framework teilen. Dieser Artikel wird für seine elegante Syntax und eine breite Palette von Funktionen bekannt und werden in seinen leistungsstarken Funktionen eingraben und praktische Tipps und Tricks bieten, damit Sie effiziente und pflegende Webanwendungen erstellen können.

Laravel und ThinkPhp sind beide populäre PHP -Frameworks und haben ihre eigenen Vor- und Nachteile in der Entwicklung. In diesem Artikel wird die beiden Tiefe verglichen und ihre Architektur, Funktionen und Leistungsunterschiede hervorgehoben, um Entwicklern zu helfen, fundierte Entscheidungen auf der Grundlage ihrer spezifischen Projektanforderungen zu treffen.

Das Erstellen von Benutzeranmeldungsfunktionen in Laravel ist eine entscheidende Aufgabe. Dieser Artikel bietet einen umfassenden Überblick, der jeden kritischen Schritt von der Registrierung der Benutzer bis zur Anmeldung überprüft. Wir werden in die Leistung der integrierten Überprüfungsfunktionen von Laravel eintauchen und Sie durch das Anpassen und Erweitern des Anmeldesvorgangs auf den spezifischen Anforderungen führen. Wenn Sie diese Schritt-für-Schritt-Anweisungen befolgen, können Sie ein sicheres und zuverlässiges Anmeldesystem erstellen, das Benutzern Ihrer Laravel-Anwendung ein nahtloses Zugriffserlebnis bietet.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver CS6
Visuelle Webentwicklungstools