In diesem Artikel wird die Warteschlangen -API von Laravel untersucht, ein leistungsstarkes Tool zur Aufhebung rechenintensiver Aufgaben zur Verbesserung der Benutzererfahrung und der Website -Leistung. Wir werden Schlüsselkonzepte behandeln und sie mit einem praktischen Beispiel veranschaulichen.
Die Geschwindigkeit der Website wirkt sich erheblich auf die Zufriedenheit der SEO und der Benutzer aus. Langsame Seitenladezeiten stammen häufig aus ressourcenlastigen Codeblöcken. Die Lösung? Verschiebung nicht kritischer Aufgaben, um die Gesamtgeschwindigkeit zu verbessern. Die Warteschlange -API von Laravel bietet eine optimierte Möglichkeit, dies zu erreichen.
Die Warteschlange -API von Laravel verwaltet Jobs, die einer Warteschlange hinzugefügt wurden. Diese Warteschlangen sind Verbindungen zugeordnet, die wiederum bestimmte Warteschlangentreiber verwenden. Lassen Sie uns die Komponenten aufschlüsseln:Warteschlangentreiber
, sind nützlich zum Testen; null
überspringt die Arbeitsplatzausführung. null
Erstellen wir nun ein Beispiel in der realen Welt: Generierung von Bildminimen.
Erstellen Sie Ihren ersten Warteschlangenjob
Erstellen des Bildmodells
Modell zum Verwalten hochgeladener Bilder: Image
php artisan make:model Image --migration
und eine Migrationsdatei. Ändern Sie die Migration (Image
Datenbank/Migrationen/YYYY_MM_DD_HHMMSS_CREATE_IMAGE_TABLE.PHP ), um den ursprünglichen Bildpfad einzuschließen:
<?php // database/migrations/YYYY_MM_DD_HHMMSS_create_images_table.php // ... $table->string('org_path'); // ... ?>
php artisan migrate
php composer.phar require intervention/image
php artisan make:job ProcessImageThumbnails
App/Jobs/processImagethumbnails.php mit:
<?php // app/Jobs/ProcessImageThumbnails.php // ... public function handle() { $image = $this->image; $full_image_path = public_path($image->org_path); $resized_image_path = public_path('thumbs' . DIRECTORY_SEPARATOR . $image->org_path); $img = \Image::make($full_image_path)->resize(300, 200); $img->save($resized_image_path); } // ... ?>
-Methode enthält die Miniaturansichterzeugungslogik. handle
app/http/controller/imageController.php ):
php artisan make:model Image --migration
Erstellen Sie eine Ansicht ( Ressourcen/Ansichten/Upload_Form.blade.php ) und fügen Sie Routen in Routes/web.php :
hinzu<?php // database/migrations/YYYY_MM_DD_HHMMSS_create_images_table.php // ... $table->string('org_path'); // ... ?>
Die upload
-Methode überladet Datei -Uploads, Datenbankeinträge und sendet den Job ProcessImageThumbnails
.
Überprüfen Sie nach dem Hochladen den Auftrag des Jobs in der Tabelle jobs
mit einer Datenbankabfrage.
Die Warteschlangenarbeiterin verarbeitet in die Warteschlange. Starten Sie es mit:
php artisan migrate
Dieser Befehl verarbeitet ausstehende Jobs. Die Ausgabe zeigt den Status der Arbeitsplatzverarbeitung an. Verwenden Sie zur kontinuierlichen Hintergrundverarbeitung einen Prozessmanager wie Supervisor, Zirkus oder ähnliches.
Das obige ist der detaillierte Inhalt vonAufgaben in Laravel mit Warteschlangen verschieben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!