Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich PHP-Befehle asynchron ausführen, ohne das Skript zu blockieren?

Wie kann ich PHP-Befehle asynchron ausführen, ohne das Skript zu blockieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 11:58:09304Durchsuche

How Can I Execute PHP Commands Asynchronously Without Blocking the Script?

PHP-Befehle ausführen, ohne auf Ergebnisse zu warten

Das Ausführen von Befehlen mit exec() in PHP führt normalerweise dazu, dass das Skript auf den Abschluss des Befehls wartet . Es gibt jedoch eine Möglichkeit, Befehle asynchron auszuführen, sodass das Skript fortfahren kann, ohne auf die Ergebnisse warten zu müssen.

In der Dokumentation wird erläutert, dass Sie sowohl die Standardausgabe als auch die Standardfehlerausgabe nach /dev/null umleiten und dann im Hintergrund ausführen können Befehl, um dies zu erreichen:

> /dev/null 2>&1 &

Dadurch wird sichergestellt, dass der Befehl keine Ausgabe erzeugt, die das PHP-Skript blockieren würde.

Alternativ können Sie zum Starten eines Um einen völlig unabhängigen Prozess zu erstellen, können Sie den folgenden Befehl verwenden:

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');

Dieser Befehl erstellt eine neue Bash-Shell, die den angegebenen Befehl ausführt. Der Prozess wird vom aktuellen Apache-Thread getrennt und läuft auch dann weiter, wenn die Seite beendet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Befehle asynchron ausführen, ohne das Skript zu blockieren?. 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