Heim > Artikel > Backend-Entwicklung > Einführung in die asynchrone Ausführung von PHP-Skripten
Dieser Artikel stellt hauptsächlich die Einführung von PHP-Skripten für die asynchrone Ausführung vor Skripte Unterbrechen Sie ein Skript, das bestimmte Vorgänge im Hintergrund ausführt. Nachdem das Hauptskript beendet wurde, kann das angehaltene Skript weiter ausgeführt werden. Um beispielsweise bestimmte zeitaufwändige oder parallel ausführbare Vorgänge auszuführen, kann PHP asynchron ausgeführt werden. Die Kommunikation zwischen dem Hauptskript und dem Unterskript kann über externe Dateien oder im Speicher erfolgen. Das Prinzip besteht darin, einen externen Befehl über exec oder system auszuführen. Hinweis: Dieser Artikel beschreibt eine Linux-Umgebung.
Um ein Skript unter Linux im Hintergrund auszuführen, können Sie am Ende des Befehls ein „&“-Symbol hinzufügen. Manchmal reicht dies nicht aus und Sie müssen den Befehl „nohup“ verwenden. Sie können sich auf http://www.netingcn.com/linux-nohup.html beziehen.
Die von der CLI-Umgebung und der Webumgebung ausgeführten Vorgänge sind nicht identisch. Lassen Sie uns zunächst über die CLI-Umgebung sprechen. Sie müssen hier nohup und & verwenden und auch die Ausgabe angeben. Wenn Sie die Ergebnisse nicht ausgeben möchten, können Sie die Ausgabe an /dev/null weiterleiten. Lassen Sie uns nun einen Test durchführen. Angenommen, in einem Verzeichnis befinden sich main.php, sub1.php und sub2. Der Inhalt von sub1 und sub2 ist derselbe und die Ruhefunktion wird für einen bestimmten Zeitraum angehalten. Der Code lautet wie folgt:
In der obigen Datei wird main.php als Hauptskript verwendet. Führen Sie php main.php in der Befehlszeile aus Das Skript main.php wird schnell ausgeführt und beendet. Wenn Sie den Befehl ps aux |. grep sub verwenden, um nach Prozessen zu suchen, sollten Sie die beiden oben genannten Indizes im Hintergrund sehen können, was darauf hinweist, dass die Indizes erfolgreich angehalten wurden.
In der Webumgebung wird die Ausführung von PHP-Skripten durch den vom Webserver gestarteten CGI-Prozess übernommen. Solange das Skript nicht beendet wird, belegt es immer den CGI-Prozess belegt, neue Anfragen können nicht bearbeitet werden. Für zeitaufwändige Skripte können Sie daher eine asynchrone Methode verwenden. Die Methode zum Starten eines Index ähnelt der der CLI. Sie müssen & verwenden und die Ausgabe angeben (Sie müssen sie an /dev/null weiterleiten), Sie können jedoch nicht nohup verwenden. Beispiel:
Wenn Sie im Browser auf die Skriptdatei zugreifen, können Sie sehen, dass die Antwort im Browser abgeschlossen ist. Verwenden Sie gleichzeitig den Befehl ps, um sie anzuzeigen Der Hintergrund erscheint und Sie können die Skripte sub1 und sub2 sehen.
Beachten Sie, dass Sie im obigen Beispiel den vollständigen Pfad des Befehls angeben müssen, wenn sich der PHP-Befehl nicht im PATH befindet. Es wird empfohlen, den vollständigen Pfad zu verwenden, insbesondere unter dem Web.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
PHP-Datei- und VerzeichnisoperationenGrundlagen der Funktionsweise von PHPDas obige ist der detaillierte Inhalt vonEinführung in die asynchrone Ausführung von PHP-Skripten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!