Heim > Artikel > Backend-Entwicklung > Detaillierte Erklärung, wie Laravel Supervisor implementiert, um asynchrone Prozesse auszuführen
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. Ich hoffe, es hilft allen.
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 (http://supervisord.org) ist ein in Python geschriebener Prozess Verwaltungstools können problemlos zum Starten, Neustarten und Beenden von Prozessen (nicht nur Python-Prozessen) verwendet werden. 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. Installieren Sie Supervisor
apt-get install supervisor
Installation abgeschlossen. Starten Sie dann den Supervisor neu: service supervisor restart
2. Konfigurieren Sie die Supervisor-Datei
[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
Hier sind die vom Supervisor verwalteten Prozessanweisungen , die zum Starten der Laravel-Warteschlange der Überwachung 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, ],
4. Schreiben Sie ein asynchrones Programm
Schreiben Sie das asynchrone Programm in das App-/Jobverzeichnis und Erstellen Sie eine neue. Schreiben Sie für Ihre eigene Klasse, z. B. Shutdown, den Konstruktor und die Handle-Funktion der Klasse. Die Handle-Funktion ist der Programmberechnungsprozess.
5. Asynchrone Funktion ausführen
$this->dispatch(new Shutdown($vimd));
Verwenden Sie diese Anweisung, um ein asynchrones Programm zu erstellen.
Verwandte Empfehlungen:
Zusammenfassung des Problems der Migration von PHP-Handwerkern in Laravel
Detaillierte Erklärung der Aufgabenplanungskonsole von Laravel
Detaillierte Erklärung, wie Laravel die .env-Konfiguration im Hintergrund ändert
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Laravel Supervisor implementiert, um asynchrone Prozesse auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!