Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie fastcgi_finish_request, um die Seitenantwortgeschwindigkeit zu verbessern

So verwenden Sie fastcgi_finish_request, um die Seitenantwortgeschwindigkeit zu verbessern

不言
不言Original
2018-07-04 16:00:181653Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung von fastcgi_finish_request zur Verbesserung der Seitenantwortgeschwindigkeit vor. Er hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf zurückgreifen.

Wenn PHP im FastCGI-Modus ausgeführt wird , PHP FPM bietet eine Methode namens fastcgi_finish_request. Wenn eine Verarbeitung nach der Generierung der Seite möglich ist, können Sie diese Methode verwenden Das mag etwas verwirrend klingen, lassen Sie es uns anhand einiger Beispiele veranschaulichen:

<?php 
echo &#39;例子:&#39;;
fastcgi_finish_request(); /* 响应完成, 关闭连接 */
 /* 记录日志 */file_put_contents(&#39;log.txt&#39;, &#39;生存还是毁灭,这是个问题.&#39;);?>

Wenn Sie über den Browser auf dieses Skript zugreifen, stellt sich heraus, dass die entsprechende Zeichenfolge nicht vorhanden ist Die entsprechende Datei wurde jedoch generiert. Dies bedeutet, dass nach dem Aufruf von fastcgi_finish_request die Client-Antwort beendet ist, das Serverskript jedoch weiterhin ausgeführt wird!

Die ordnungsgemäße Verwendung dieser Funktion kann das Benutzererlebnis erheblich verbessern:

<?php 
echo &#39;例子:&#39;; 
file_put_contents(&#39;log.txt&#39;, date(&#39;Y-m-d H:i:s&#39;) . " 上传视频\n", FILE_APPEND);
 
fastcgi_finish_request(); 
sleep(1);file_put_contents(&#39;log.txt&#39;, date(&#39;Y-m-d H:i:s&#39;) . " 转换格式\n", FILE_APPEND); 
sleep(1);file_put_contents(&#39;log.txt&#39;, date(&#39;Y-m-d H:i:s&#39;) . " 提取图片\n", FILE_APPEND); 
?>

Verwenden Sie den Schlaf, um etwas zeitaufwändiges zu simulieren Vorgänge im Code wurden nicht blockiert, aber die Programme wurden ausgeführt. Weitere Informationen finden Sie im Protokoll.

Abschließend möchte ich Sie daran erinnern, dass Yahoo in den Best Practices für Geschwindigkeitsüberschreitungen „Flush the Buffer Early“ erwähnt hat Up Your Web Site, das heißt, verwenden Sie die Flush-Methode in PHP, um den Inhalt so schnell wie möglich an den Client zu senden. Dies ähnelt etwas der in diesem Artikel vorgestellten fastcgi_finish_request.

Außerdem aus der Perspektive von Code-Portabilität: Sie können dem Code Folgendes hinzufügen:

if (!function_exists("fastcgi_finish_request")) {      
function fastcgi_finish_request()  {
      }
}

verursacht keine Probleme bei der Codebereitstellung in Nicht-FPM-Umgebungen

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

Verwandte Empfehlungen:

So verwenden Sie eine Instanz von


Einführung in die Erweiterungsfunktion der Memcache-Klasse

Das obige ist der detaillierte Inhalt vonSo verwenden Sie fastcgi_finish_request, um die Seitenantwortgeschwindigkeit zu verbessern. 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