


Beispiele zur Erläuterung der einfachen Verwendung von Laravel-Warteschlangen
Dieser Artikel vermittelt Ihnen das relevante Wissen über Laravel. Er stellt vor allem Laravel-Warteschlangen vor, unter welchen Umständen Warteschlangen verwendet werden, und ich hoffe, dass er für alle hilfreich ist.
【Verwandte Empfehlung: Laravel-Lern-Tutorial】
In diesem Artikel wird die Verwendung von Warteschlangen in Laravel vorgestellt und erläutert, warum Warteschlangen verwendet werden
Wann werden Warteschlangen verwendet?
Zeitaufwändig, z. B. das Hochladen einer Datei und das anschließende Durchführen einiger Formatkonvertierungen usw.
Wenn Sie die Zustellrate sicherstellen müssen, z. B. beim Senden einer Textnachricht, weil Sie die API einer anderen Person aufrufen müssen, besteht immer die Möglichkeit eines Fehlers. Um die Zustellung sicherzustellen, ist daher ein erneuter Versuch unerlässlich.
Zeichnen Sie den Verwendungsprozess auf:
1. Konfigurieren Sie die Warteschlangenkonfigurationsdatei in config/queue.php. Sie können hier die Synchronisierungsverarbeitung auswählen ist wie folgt.
Datenbank
Erstellen Sie eine Datentabellenspeicheraufgabe und führen Sie die Datenmigration aus, nachdem Sie den Befehl artisan ausgeführt haben
php artisan queue:table php artisan migrate
Redis
Um den Redis-Warteschlangentreiber verwenden zu können, müssen Sie die Redis-Datenbankverbindung in Ihrer Konfigurationsdatei config/ konfigurieren. Datenbank.php.
Wenn Ihre Redis-Warteschlangenverbindung einen Redis-Cluster verwendet, muss Ihr Warteschlangenname das Schlüssel-Hash-Tag enthalten. Damit soll sichergestellt werden, dass alle Redis-Schlüssel für eine bestimmte Warteschlange im selben Hash platziert werden:
'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, ],
2. Erstellen Sie die Aufgabenklasse
Die Aufgabenklasse der Warteschlange befindet sich im Verzeichnis app/Jobs/
php artisan make: Job SaveBusLine: Ändern Sie die Datei wie folgt: Rufen Sie die Warteschlangenmethode im Controller oder im Lager auf:
Supervisor Es handelt sich um eine Prozessüberwachungssoftware auf dem Linux-Betriebssystem, die die Befehle queue:listen oder queue:work automatisch neu startet, nachdem sie fehlgeschlagen sind. Um Supervisor unter Ubuntu zu installieren, können Sie den folgenden Befehl verwenden:namespace App\Jobs; use App\Http\Repository\BusRepository; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; class SaveBusLine implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * 任务最大尝试次数。 * * @var int */ public $tries = 3; /** * 任务运行的超时时间。 * * @var int */ public $timeout = 60; private $datum; /** * Create a new job instance. * @param array|object $datum * * @return void */ public function __construct($datum) { $this->datum = $datum; } /** * Execute the job. * * @return void */ public function handle() { BusRepository::getInstent()->updateBusLine($this->datum); } }
Supervisor konfigurieren
Supervisor-Konfigurationsdateien werden im Allgemeinen im Verzeichnis /etc/supervisor/conf.d abgelegt. In diesem Verzeichnis können Sie beliebig viele Konfigurationsdateien erstellen, um dem Supervisor mitzuteilen, wie er Ihre Prozesse überwachen soll. Zum Beispiel erstellen wir eine laravel-worker.conf, um einen queue:work-Prozess zu starten und zu überwachen:use App\Jobs\SaveBusLine;
use Carbon\Carbon;
/***************** 队列操作 start *******************/
SaveBusLine::dispatch($arrayData)->delay(Carbon::now()->addMinute(1));
/***************** 队列操作 end *******************/
Nach dem Login kopieren
Der Befehl numprocs in diesem Beispiel fordert den Supervisor auf, 8 queue:work-Prozesse auszuführen und zu überwachen und sie neu zu starten, wenn sie fehlschlagen . Natürlich müssen Sie den Befehl queue:work redis command ändern, um den Warteschlangentreiber Ihrer Wahl anzuzeigen. Sie müssen auch den Ausführungsbenutzer user = ändern. Informationen zur Verwendung finden Sie in der offiziellen Dokumentation des Supervisors. use App\Jobs\SaveBusLine; use Carbon\Carbon; /***************** 队列操作 start *******************/ SaveBusLine::dispatch($arrayData)->delay(Carbon::now()->addMinute(1)); /***************** 队列操作 end *******************/
5. Behandeln Sie fehlgeschlagene Aufgaben
Manchmal schlagen Aufgaben in Ihrer Warteschlange fehl. Machen Sie sich keine Sorgen, es wird nicht immer alles reibungslos laufen. Laravel verfügt über eine praktische integrierte Möglichkeit, die maximale Anzahl an Wiederholungen einer Aufgabe anzugeben. Wenn eine Aufgabe diese Anzahl an Wiederholungsversuchen überschreitet, wird sie in die Datentabelle failed_jobs eingefügt. Um eine Migrationsdatei für die Tabelle failed_jobs zu erstellen, können Sie den Befehl queue:failed-table verwenden und dann den Befehl migrate Artisan verwenden, um die Tabelle failed_jobs zu generieren:sudo apt-get install supervisor
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php ~/laravel/artisan queue:work redis --sleep=3 --tries=3 autostart=true autorestart=true user=lisgroup numprocs=8 redirect_stderr=true stdout_logfile=/home/lisgroup/logs/worker.log
Sie können die fehlgeschlagene Methode direkt in der Aufgabenklasse definieren, die die Löschlogik der Aufgabe ausführen kann, wenn die Aufgabe fehlschlägt. Dieser Ort eignet sich perfekt, um dem Benutzer eine Warnung zu senden oder den Vorgang der Aufgabenausführung zurückzusetzen. Ausnahmeinformationen, die dazu führen, dass die Aufgabe fehlschlägt, werden an die fehlgeschlagene Methode übergeben:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start laravel-worker:*
Laravel-Video-Tutorial
]Das obige ist der detaillierte Inhalt vonBeispiele zur Erläuterung der einfachen Verwendung von Laravel-Warteschlangen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Datenbankoperationen in PHP werden durch ORM vereinfacht, das Objekte in relationalen Datenbanken abbildet. EloquentORM in Laravel ermöglicht Ihnen die Interaktion mit der Datenbank mithilfe einer objektorientierten Syntax. Sie können ORM verwenden, indem Sie Modellklassen definieren, Eloquent-Methoden verwenden oder in der Praxis ein Blog-System erstellen.

Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Leitfaden zum Testen von PHP-Einheiten und -Integrationen Unit-Tests: Konzentrieren Sie sich auf eine einzelne Code- oder Funktionseinheit und verwenden Sie PHPUnit, um Testfallklassen zur Überprüfung zu erstellen. Integrationstests: Achten Sie darauf, wie mehrere Codeeinheiten zusammenarbeiten, und verwenden Sie die Methoden setUp() und TearDown() von PHPUnit, um die Testumgebung einzurichten und zu bereinigen. Praktischer Fall: Verwenden Sie PHPUnit, um Unit- und Integrationstests in Laravel-Anwendungen durchzuführen, einschließlich der Erstellung von Datenbanken, dem Starten von Servern und dem Schreiben von Testcode.

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.
