So implementieren Sie einen Supervisor zur Ausführung eines asynchronen Prozesses im Laravel-Framework in PHP

不言
Freigeben: 2023-03-31 22:32:02
Original
1457 Leute haben es durchsucht

Dieser Artikel stellt Ihnen hauptsächlich die Methode zur Implementierung asynchroner Prozesse im PHP-Framework Laravel vor. Ich glaube, dass sie für jeden, der sie benötigt, einen gewissen Referenz- und Lernwert hat Werfen Sie einen Blick unten.

Problembeschreibung

Wenn Sie das Laravel-Framework zum Implementieren dynamischer Webseiten verwenden und einige Vorgänge einen großen Rechenaufwand erfordern, ist dies der Fall Um die Benutzererfahrung nicht zu beeinträchtigen, ist häufig die Verwendung einer asynchronen Verarbeitung erforderlich. Dies wird mithilfe der Warteschlangen implementiert, die mit Supervisor und Laravel geliefert werden. Werfen wir einen Blick auf die ausführliche Einführung:

Supervisor

Supervisor ist ein in Python geschriebenes Prozessmanagement-Tool, das einfach verwendet werden kann , Prozesse neu starten und herunterfahren (nicht nur Python-Prozesse). Zusätzlich zur Steuerung eines einzelnen Prozesses können Sie auch mehrere Prozesse gleichzeitig starten und beenden. Leider führt ein Serverproblem dazu, dass alle Anwendungen zu diesem Zeitpunkt beendet werden gleichzeitig starten, anstatt Befehle einzeln einzugeben.

Die Methode ist wie folgt

1. Supervisor installieren

 apt-get install supervisor
Nach dem Login kopieren

Neustart nach der Installation Supervisor:

service supervisor restart
Nach dem Login kopieren

2. Supervisor-Datei konfigurieren

[program:laravel]
process_name=%(program_name)s_%(process_num)02d
command=php {{ app.root }}/artisan queue:listen
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile={{ app.root }}/storage/logs/queque.log
Nach dem Login kopieren

Dies konfiguriert die vom Supervisor verwalteten Prozessanweisungen, die zum Starten der Überwachung der Laravel-Warteschlange verwendet werden. Außerdem werden die Anzahl der Prozesse und die Adresse des Fehlerprotokolls angegeben.

3. Warteschlangenkonfiguration

Bevor Sie den Warteschlangencode schreiben, müssen Sie den Konfigurationsort in config/queue.PHP konfigurieren Sie müssen Ihre Warteschlangentreiber wie Datenbank, Redis, Synchronisierung usw. konfigurieren. Verschiedene Optionen haben entsprechende Konfigurationen. Ich wähle hier Redis für die Konfiguration.

Zum Beispiel:

'redis' => [
  'driver' => 'redis',
  'connection' => env('QUEUE_CONNECTION', 'default'),
  'queue' => 'wordtohtml',
  'expire' => 600,
 ],
Nach dem Login kopieren

4. Schreiben Sie ein asynchrones Programm

Schreiben Sie das asynchrone Programm in das App-/Jobverzeichnis und erstellen Sie ein Erstellen Sie eine neue Klasse Ihrer eigenen Klasse, zum Beispiel: Herunterfahren, schreiben Sie den Konstruktor und behandeln Sie die Funktion der Klasse. Die Handle-Funktion ist der Programmberechnungsprozess.

5. Asynchrone Funktion ausführen

$this->dispatch(new Shutdown($vimd));
Nach dem Login kopieren

Verwenden Sie diese Anweisung, um ein asynchrones Programm zu erstellen.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Analyse der Ereignisoperation im Laravel-Framework von PHP

Über PHP Artisan unter Laravel 5.1 Verwendung von Migrate

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Supervisor zur Ausführung eines asynchronen Prozesses im Laravel-Framework in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage