Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die Timeout-Wartezeit in PHP fest

So legen Sie die Timeout-Wartezeit in PHP fest

PHPz
PHPzOriginal
2023-03-29 11:34:413445Durchsuche

Bei der Entwicklung mit PHP müssen Sie manchmal langfristige Vorgänge ausführen, z. B. Netzwerkanfragen, Datenbankabfragen, Dateivorgänge usw. In diesem Fall reicht das Standard-Timeout von PHP möglicherweise nicht aus, um diese Vorgänge abzuschließen, was zu einem Programmfehler führt. Um dieses Problem zu lösen, müssen wir die Timeout-Wartezeit von PHP festlegen.

Die Timeout-Wartezeit von PHP bezieht sich auf die maximale Wartezeit, wenn ein PHP-Skript ausgeführt wird. Wenn diese Zeit überschritten wird, wird es zwangsweise beendet. Standardmäßig beträgt die Timeout-Wartezeit von PHP 30 Sekunden, was durch Ändern der Datei php.ini angepasst werden kann.

  1. Ändern Sie die Datei php.ini.

Zuerst müssen wir die Datei php.ini finden. Unter Linux-Systemen befindet sich php.ini normalerweise im Verzeichnis /etc/php/[version]/cli/. Unter Windows-Systemen befindet sich php.ini normalerweise im PHP-Installationsverzeichnis.

Öffnen Sie die php.ini-Datei und suchen Sie die folgenden zwei Parameter:

max_execution_time = 30
max_input_time = 60

Unter ihnen stellt max_execution_time die maximale Ausführungszeit des PHP-Skripts (in Sekunden) dar, der Standardwert ist 30 Sekunden, der das PHP-Skript darstellt, das POST empfängt. GET, FILE usw. Maximale Zeit in Sekunden für die Dateneingabe, Standard ist 60 Sekunden.

Wir können die Werte dieser beiden Parameter auf die von uns benötigten Werte ändern, zum Beispiel:

max_execution_time = 60
max_input_time = 120

Dadurch beträgt die maximale Ausführungszeit des PHP-Skripts 60 Sekunden und die maximale Eingabezeit 120 Sekunden.

  1. Timeout im Code festlegen

Zusätzlich zur Änderung der php.ini-Datei können wir auch die Timeout-Wartezeit im PHP-Code festlegen. In PHP können wir die Funktion set_time_limit verwenden, um die maximale Ausführungszeit des Skripts festzulegen.

Mit dem folgenden Code wird beispielsweise die maximale Ausführungszeit eines PHP-Skripts auf 60 Sekunden festgelegt:

set_time_limit(60);

Wenn wir den Parameter max_input_time im Code ändern möchten, können wir die Funktion ini_set verwenden.

Mit dem folgenden Code wird beispielsweise die maximale Zeit für den Empfang von Eingaben durch ein PHP-Skript auf 120 Sekunden festgelegt:

ini_set('max_input_time', 120);

Es ist zu beachten, dass diese Einstellungen erst im aktuellen Skript wirksam werden. Nach dem Verlassen des aktuellen Skripts tritt der Timeout auf wird wiederhergestellt php.ini Der in der Datei konfigurierte Wert.

  1. Verwenden Sie die Funktion „ignore_user_abort“

PHP bietet auch eine Funktion „ignore_user_abort“, mit der PHP-Skripte weiterhin ausgeführt werden können, nachdem der Client die Verbindung getrennt hat. Diese Funktion ist sehr nützlich, wenn Sie mit lang laufenden Skripten arbeiten.

Zum Beispiel stellt der folgende Code das PHP-Skript so ein, dass die Ausführung fortgesetzt wird, nachdem der Client die Verbindung getrennt hat:

ignore_user_abort(true);

Es ist zu beachten, dass nach dem Festlegen der Funktion „ignore_user_abort“ das PHP-Skript weiterhin ausgeführt wird, jedoch nichts, wenn der Client die Verbindung trennt kann an den Client ausgegeben werden.

Zusammenfassung

In der PHP-Entwicklung ist die Timeout-Wartezeit ein sehr wichtiges Thema und muss je nach Situation eingestellt werden. Wir können die Timeout-Wartezeit von PHP anpassen, indem wir die Datei php.ini ändern, die Timeout-Wartezeit im Code festlegen, die Funktion „ignore_user_abort“ verwenden usw., um lang laufende Skripte zu verarbeiten.

Das obige ist der detaillierte Inhalt vonSo legen Sie die Timeout-Wartezeit in PHP fest. 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