So führen Sie die Laravel-Warteschlange ständig aus
Bei der Entwicklung mit Laravel sind Warteschlangen oft ein wesentlicher Bestandteil. Es kann die Fähigkeiten zur gleichzeitigen Verarbeitung von Anwendungen erheblich verbessern und ermöglicht die effektive Verwaltung und Verarbeitung einer großen Anzahl von Aufgaben. In der tatsächlichen Entwicklung stoßen wir jedoch häufig auf ein solches Problem: Die Warteschlange ist instabil, die Warteschlange stoppt plötzlich, wenn viele Aufgaben vorhanden sind, oder die Warteschlange kann nicht automatisch neu gestartet werden, wenn eine Ausnahme in der Aufgabe auftritt. Zu diesem Zeitpunkt benötigen wir einige Fähigkeiten, um einen stabilen Betrieb der Warteschlange zu ermöglichen. Hier sind mehrere Methoden, die Ihnen bei der Lösung dieser Probleme helfen können.
1. Supervisor-Daemon
Supervisor ist ein in Python geschriebenes Prozesskontrollsystem. Es kann uns helfen, einen Prozess im Hintergrund kontinuierlich zu überwachen Wenn es aus irgendeinem Grund beendet wird, kann es mit dem Host-Prozess neu gestartet werden. Dadurch wird sichergestellt, dass Ihre Warteschlange immer ausgeführt werden kann.
Supervisor installieren
Centos-Systemausführung
yum install -y supervisor
Ubuntu-Systemausführung
apt-get install -y supervisor
Öffnen Sie die Konfigurationsdatei
vim /etc/supervisord.conf
Treten Sie unserem Laravel bei -queue-Konfigurationsabschnitt
[program:laravel-queue]
command=php /path/to/artisan queue:work redis --sleep=3 --tries=3
directory=/path/to/your/project
autostart =true
autorestart=true
user=www-data
Anweisungen:
- Programm: Definieren Sie den Namen des Prozesses
- Befehl: Definieren Sie den laufenden Befehl
- Autostart: Automatisch nach dem Booten starten
- Autorestart: Automatisch neu starten
- user: run Der Benutzer des Prozesses
speichert die Änderung und lädt die Konfiguration
supervisorctl reload
Starte die Warteschlange
supervisorctl start laravel-queue
Auf diese Weise kann der Daemon-Prozess für die Warteschlange implementiert werden . Wenn die Warteschlange gestoppt wird, wird der Prozess automatisch neu gestartet, um sicherzustellen, dass die Warteschlange immer ausgeführt wird. Selbstverständlich können Sie über die Konfiguration in der Konfigurationsdatei auch mehrere Arbeitsprozesse ausführen, um die Warteschlangenverarbeitungsfähigkeiten zu verbessern.
2. Verwenden Sie Nomad von Hashicorp, um Marathon zu integrieren. Nomad von Hashicorp funktioniert ähnlich wie Marathon. Beide sind Open-Source-Tools für die Orchestrierung verteilter Aufgaben. Nomad ist in der Lage, eine Reihe verschiedener Arten von Aufgaben zu orchestrieren, indem es deren Standort und Entscheidungen abstrahiert. Im Vergleich zu Marathon bietet Nomad die Vorteile von geringem Gewicht, hoher Benutzererfahrung und einfacher Konfiguration.
Für die Verwendung von Nomad ist eine Docker-Umgebung erforderlich. Wenn Sie Docker nicht installiert haben, können Sie es zuerst über apt-get installieren:
apt-get install -y docker.io
Nomad-Job erstellen- Einen Job erstellen Erstellen Sie im Stammverzeichnis des Projekts einen Nomad-Job über die Konfiguration:
job „laravel_app“ {
datacenters = [“dc1“] type = „service“
group „app“ {
task "laravel-queue" { driver = "docker" config { image = "your_docker_image" command = ["php", "artisan", "queue:work", "--tries", "1", "--timeout", "30"] args = [ "--queue=critical,high,default,email,chat,sms", "--sleep=3" ] ports = ["http"] } resources { cpu = 500 memory = 128 network { mbits = 10 port "http" {} } } service { name = "laravel-queue" port = "http" check { type = "http" path = "/status" interval = "10s" timeout = "2s" } } restart { attempts = 10 interval = "5m" delay = "25s" mode = "failures" } }
}
}
Die obige Konfigurationsdatei von Docker wird für die Ausführung im Standalone-Modus verwendet und entsprechend den tatsächlichen Bedingungen in der Produktionsumgebung geändert.
- Führen Sie den folgenden Befehl aus, um Nomad Job zu starten:
nomad run job.nomad
Damit ist der Start der Warteschlange abgeschlossen. Nomad führt unseren Job auf einem Knoten aus und kann den Job gleichzeitig überwachen. Wenn ein Problem mit der Aufgabe auftritt, kann Nomad die Aufgabe schnell neu starten und den Status aktualisieren. Nomad Job kann automatisch zwischen verschiedenen Knoten im Cluster migrieren, wodurch die Belastung eines bestimmten Knotens verringert und die Robustheit der gesamten Anwendung verbessert werden kann.
3. Verwendung von AWS SQS
Der SQS (Simple Queue Service) von AWS kann Nachrichten zwischen verteilten Anwendungen effizient übermitteln und verarbeiten und ermöglicht eine horizontale Skalierung der Nachrichtenverarbeitung. Im Laravel-Framework kann SQS problemlos in unsere Anwendungen integriert werden. Wir müssen lediglich das Laravel Queue-Paket installieren, das SQS unterstützt. Gleichzeitig hat jede Warteschlange in AWS SQS einen Mindestlebenszyklus (TTL). Wenn sie innerhalb dieses Zeitraums nicht erfolgreich ausgeführt wird, wird die Aufgabe von SQS gelöscht. Dadurch wird sichergestellt, dass eine Aufgabe letztendlich erfolgreich ausgeführt wird.
SQS installieren
Die Integration von SQS in Laravel ist relativ einfach. Sie müssen lediglich das Laravel Queue-Paket installieren, das SQS unterstützt. Kann direkt über Composer installiert werden:
Composer erfordert „aws/aws-sdk-php ^3.0“
Konfigurieren Sie SQS
Fügen Sie den folgenden Inhalt in der .env-Konfigurationsdatei hinzu:
QUEUE_DRIVER=sqs
AWS_ACCESS_KEY_ID=your_aws_access_keyAWS_ SECR ET_ACCESS_KEY=your_aws_secret_key
AWS_DEFAULT_REGION=us-west-2
SQS_PREFIX=your_queue_prefix
Ersetzen Sie your_aws_access_key, your_aws_secret_key und your_queue_prefix durch Ihre eigenen.
Starten Sie die Warteschlange
php artisan queue:work sqs --queue=default --tries=3 --sleep=3 --timeout=60
Der obige Befehl startet eine SQS-Warteschlange und verwendet die Standardwarteschlange. Dabei gibt der Parameter --tries die Anzahl der Fehlerversuche für die Warteschlangenaufgabe an, --sleep gibt die Zeit an, die die Warteschlange nach der Verarbeitung der Aufgabe ruhen soll, und --timeout gibt die automatische Wiederholungszeit an, wenn die Warteschlangenaufgabe das Zeitlimit überschreitet. Die Warteschlange wird kontinuierlich durchlaufen, um Aufgaben abzurufen und auszuführen:
Wenn ein Fehler auftritt, wird die Warteschlange automatisch erneut versuchen, bis die Anzahl der Fehlerversuche der Warteschlangenaufgabe erschöpft ist oder die Ausführung erfolgreich ist.
Zusammenfassung
In diesem Artikel stellen wir verschiedene Methoden vor, um die Ausführung der Laravel-Warteschlange aufrechtzuerhalten. Durch Daemon-Prozesse, Aufgabenorchestrierung, Dienste von Drittanbietern usw. können wir eine stabilere und effizientere Betriebsunterstützung für die Warteschlange bereitstellen. Jede Methode hat ihre eigenen Vorteile und Anwendungsbereiche. Welche Methode Sie wählen, hängt von Ihrer tatsächlichen Situation ab.
Das obige ist der detaillierte Inhalt vonSo führen Sie die Laravel-Warteschlange ständig aus. 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

Dieser Artikel führt dazu, dass robuste Laravel -Rastful -APIs aufgebaut werden. Es deckt Projekt -Setup, Ressourcenverwaltung, Datenbankinteraktionen, Serialisierung, Authentifizierung, Autorisierung, Testen und Best Practices für die wichtige Sicherheitssicherheit ab. Skalierbarkeit Chall

In diesem Artikel werden die Authentifizierung und Autorisierung von OAuth 2.0 in Laravel implementiert. Es umfasst die Verwendung von Paketen wie League/OATH2-Server oder providerspezifischer Lösungen, wobei die Datenbank-Setup, die Client-Registrierung und die Autorisierungsserverkonfigurus betont werden

In dem Artikel wird das Erstellen und Anpassen wiederverwendbarer UI -Elemente in Laravel mithilfe von Komponenten ermittelt, die Best Practices für die Organisation anbieten und Vorschläge für Verbesserungspakete vorschlagen.

In dem Artikel werden Best Practices für die Bereitstellung von Laravel in Cloud-nativen Umgebungen erörtert und sich auf Skalierbarkeit, Zuverlässigkeit und Sicherheit konzentriert. Zu den wichtigsten Problemen gehören Containerisierung, Microservices, staatenlose Design- und Optimierungsstrategien.

In dem Artikel wird das Erstellen und Verwenden von benutzerdefinierten Validierungsregeln in Laravel erläutert und bietet Schritte zur Definition und Implementierung. Es zeigt Vorteile wie Wiederverwendbarkeit und Spezifität und bietet Methoden zur Erweiterung des Laravel -Validierungssystems.

Bei der Auswahl eines PHP -Frameworks gehören Laravel und Symfony zu den beliebtesten und am häufigsten verwendeten Optionen. Jedes Rahmen bringt seine eigene Philosophie, Merkmale und Stärken auf den Tisch, wodurch sie für verschiedene Projekte und Anwendungsfälle geeignet sind

In dem Artikel wird das Erstellen und Verwenden benutzerdefinierter Blade -Richtlinien in Laravel erläutert, um die Vorlagen zu verbessern. Es umfasst die Definition von Direktiven, die Verwendung in Vorlagen und die Verwaltung in großen Projekten, um Vorteile wie eine verbesserte Wiederverwendbarkeit von Code und R hervorzuheben

In diesem Artikel wird in Laravel optimale Dateien -Upload- und Cloud -Speicherstrategien in Laravel untersucht. Es untersucht lokale Speicher- und Cloud -Anbieter (AWS S3, Google Cloud, Azure, Digitalocean), die Sicherheit (Validierung, Bereinigung, HTTPS) und Leistungsopti betonen
