Maison >développement back-end >tutoriel php >Comment utiliser fastcgi_finish_request pour améliorer la vitesse de réponse des pages

Comment utiliser fastcgi_finish_request pour améliorer la vitesse de réponse des pages

不言
不言original
2018-07-04 16:00:181746parcourir

Cet article présente principalement l'utilisation de fastcgi_finish_request pour améliorer la vitesse de réponse des pages. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Lorsque PHP fonctionne en mode FastCGI. , PHP FPM fournit une méthode appelée fastcgi_finish_request. Selon la documentation, cette méthode peut améliorer la vitesse de traitement des requêtes. Si certains traitements peuvent être effectués après la génération de la page, vous pouvez utiliser cette méthode

Écoutez-la. peut paraître un peu déroutant, illustrons-le à travers quelques exemples :

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

Accédez à ce script via le navigateur, et il s'avère que les caractères correspondants ne sont pas générés, mais le fichier correspondant est généré. Cela montre qu'après l'appel de fastcgi_finish_request, la réponse du client est terminée, mais en même temps, le script du serveur continue de s'exécuter !

Une utilisation appropriée de cette fonctionnalité peut grandement améliorer l'expérience utilisateur. Voici un autre exemple :

<?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); 
?>

Utilisez sleep dans le code pour. simuler un certain temps L'opération n'a pas été bloquée lors de la navigation, mais les programmes ont été exécutés. Veuillez vous référer au journal pour plus de détails

Enfin, je tiens à vous rappeler que Yahoo a mentionné Flush the Buffer Early dans Best. Pratiques pour accélérer votre site Web. Il s'agit d'utiliser la méthode flush en PHP pour envoyer le contenu au client dès que possible. Elle est légèrement similaire au fastcgi_finish_request présenté dans cet article.

De plus, du point de vue de la portabilité du code, vous pouvez l'attacher au code Le code suivant :

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

ne posera pas de problèmes de déploiement de code en non-fpm.

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment utiliser instanceof

Introduction à la fonction d'extension de la classe memcache

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn