某些操做,如用戶註冊後郵件發送,記錄日誌等一些耗時操做能夠轉化爲異步操做!當PHP運行在FastCGI模式是提供了fastcgi_finish_request()函數,看下面例子:php
運行了次腳本,你會發現客戶端輸出上面一句話,fastcgi_finish_request()下面的內容並無輸出,可是卻生成了文件,如此說明了調用了fastcgi_finish_request後,客戶端響應就已經結束,但與此同時服務端腳本卻繼續運行。這在必定程度上提升了響應速度,固然更科學的作法是:使用fastcgi_finish_request()函數集成隊列消息,能夠把消息異步發 送到隊列。
fastcgi_finish_reques()函數的缺點:
1.PHP FastCGI 進程數有限,正在處理異步操做的php-cgi進程,沒法處理新請求;
2.若是併發訪問量較大,php-cgi進程數用滿,新訪問請求,將沒有php-cgi去處理。Nginx服務器會出現: 502 Bad Gateway。服務器