Heim  >  Artikel  >  PHP-Framework  >  Laravel-Entwicklung: Wie verwaltet man Warteschlangen mit Laravel Horizon und IronMQ?

Laravel-Entwicklung: Wie verwaltet man Warteschlangen mit Laravel Horizon und IronMQ?

王林
王林Original
2023-06-17 11:00:001698Durchsuche

Mit der kontinuierlichen Entwicklung des Internetgeschäfts sind hohe Parallelität und große Datenverarbeitungsmengen zu Herausforderungen geworden, denen sich Internetanwendungen stellen müssen. Um diese Herausforderungen zu bewältigen, ist die Verwendung von Warteschlangen zur Bewältigung zeitaufwändiger Aufgaben zu einer gängigen Lösung im Laravel-Framework geworden. In diesem Artikel wird erläutert, wie Sie mit Laravel Horizon und IronMQ Warteschlangen und deren Aufgaben verwalten.

1. Laravel Horizon

Laravel Horizon ist ein offiziell von Laravel bereitgestelltes Warteschlangenverwaltungstool. Es bietet eine benutzerfreundliche und schöne Weboberfläche, die uns dabei helfen kann, die Aufgaben in der Warteschlange anzuzeigen und zu verwalten Echtzeit-Aufgaben, Überwachung des Warteschlangen-Laufstatus usw. Darüber hinaus bietet Laravel Horizon auch leistungsstarke Funktionen wie Statistiken, automatisierte Wiederholungsversuche, Zeitfensterlimits und Ausnahmebehandlung für Aufgaben in der Warteschlange.

  1. Laravel Horizon installieren

Verwenden Sie Composer, um Laravel Horizon zu installieren: Führen Sie den folgenden Befehl aus:

composer require laravel/horizon
  1. Horizon-Skriptveröffentlichung

Nachdem Sie den obigen Befehl ausgeführt haben, müssen Sie auch das Laravel Horizon-Skript im Projekt veröffentlichen Ausführen des folgenden Befehls Medium:

php artisan horizon:install
  1. Konfiguration von Laravel Horizon

Die Konfigurationsdatei von Laravel Horizon befindet sich in config/horizon.php. Sie können das Verhalten von Horizon konfigurieren, indem Sie beispielsweise die Verbindung und den Namen der Warteschlange festlegen in der Konfigurationsdatei:

return [
    // 要运行的进程数
    'processes' => 10,

    // 队列连接设置
    'environments' => [
        'production' => [
            'supervisor-1' => [
                'connection' => 'redis',
                'queue' => ['default'],
                'balance' => 'simple',
                'processes' => 10,
            ],
            'supervisor-2' => [
                'connection' => 'redis',
                'queue' => ['high'],
                'balance' => 'simple',
                'processes' => 5,
            ],
        ],
    ],
]
  1. Laravel Horizon starten

Verwenden Sie den folgenden Befehl, um Laravel Horizon zu starten:

php artisan horizon

Besuchen Sie http://localhost/horizon und Sie sehen die Weboberfläche von Laravel Horizon.

2. IronMQ

IronMQ ist ein leistungsstarker Cloud-Nachrichtenwarteschlangendienst, der große Datenmengen über die API empfangen und übertragen kann. Im Vergleich zu anderen gängigen Nachrichtenwarteschlangendiensten ist IronMQ flexibler und zuverlässiger, unterstützt mehrere Sprachen und Betriebssysteme und verfügt über skalierbare Funktionen.

  1. IronMQ registrieren

Bei der Registrierung von IronMQ müssen Sie den Sprachtyp und den Rechenzentrumsstandort auswählen, den Sie verwenden. Nach der Registrierung können Sie eine Projekt-ID und ein Token erhalten, die wir im Laravel-Code verwenden, um eine Verbindung zu Ihrer IronMQ-Warteschlange herzustellen.

  1. IronMQ installieren

Im Laravel-Projekt verwenden Sie Composer, um IronMQ zu installieren:

composer require iron-io/iron_mq
  1. IronMQ konfigurieren

Im Projekt können wir IronMQ konfigurieren, indem wir der .env-Datei die folgenden Parameter hinzufügen:

IRON_PROJECT_ID=IronMQ_project_id
IRON_TOKEN=IronMQ_token
IRON_QUEUE_NAME=default
  1. Schieben Sie die Aufgabe an IronMQ

Schieben Sie die Aufgabe im Laravel-Projekt auf folgende Weise an IronMQ:

IronMQ::queue('queue_name')->post($payload);

Wobei $payload der Inhalt der Aufgabe und queue_name der Name der Warteschlange ist.

3. Verwenden Sie Laravel Horizon und IronMQ zum Verwalten von Warteschlangen und Aufgaben

Das Folgende ist der allgemeine Prozess für die Verwendung von Laravel Horizon und IronMQ zum Verwalten von Warteschlangen und Aufgaben:

  1. Konfigurieren Sie im Laravel-Projekt Horizon und IronMQ und starten Sie sie.
  2. In Laravel-Projekten Aufgaben an IronMQ übertragen. Aufgabendaten können in einer Datenbank gespeichert oder auf andere Weise generiert werden.
  3. Laravel Horizon fragt IronMQ ab und verbraucht Aufgaben aus der Warteschlange. Sie können den Status der Warteschlange in der Weboberfläche von Horizon anzeigen, einschließlich Aufgabenabschluss und Aufgabenwiederholungen.
  4. Laravel Horizon bietet viele nützliche Mittel, die uns helfen, die Codequalität während der Aufgabenausführung zu verbessern. In der Weboberfläche von Horizon können wir beispielsweise detaillierte Informationen wie die Anzahl der Codezeilen und die von einer Aufgabe ausgeführte Zeit anzeigen und so potenzielle Leistungsengpässe und Codefehler in unseren Aufgaben identifizieren.
  5. Nach der Aufgabenbearbeitung können bei Bedarf die Ergebnisse an andere Systeme weitergegeben oder feste Daten an die aufrufende Seite zurückgegeben werden.

Fazit

In diesem Artikel wird erläutert, wie Sie IronMQ als Warteschlangendienst in Laravel-Anwendungen verwenden und mit Laravel Horizon kombinieren, um Warteschlangen und Aufgaben einfach zu verwalten. Durch den Einsatz von Laravel Horizon und IronMQ können wir asynchrone Aufgaben effizienter erledigen und Probleme, die während der Aufgabenausführung auftreten, leichter erkennen und lösen.

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie verwaltet man Warteschlangen mit Laravel Horizon und IronMQ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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