成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

php方法執(zhí)行時(shí)間過長(zhǎng)怎么辦

這篇文章主要介紹了php方法執(zhí)行時(shí)間過長(zhǎng)怎么辦,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),裕華企業(yè)網(wǎng)站建設(shè),裕華品牌網(wǎng)站建設(shè),網(wǎng)站定制,裕華網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,裕華網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

解決 PHP 方法執(zhí)行時(shí)間過長(zhǎng)導(dǎo)致 502 Bad Gateway

背景

最近遇到一個(gè)問題,有一段 PHP 代碼需要涉及到長(zhǎng)時(shí)間的 IO 操作,而這一段會(huì)阻塞請(qǐng)求所在的線程,導(dǎo)致請(qǐng)求超時(shí)。

你可能會(huì)說,這有啥難的,開個(gè)線程異步去做,做好了更新狀態(tài)就 OK 了。這真是一個(gè)不錯(cuò)的方案,可惜這一整套代碼都是別人的。如果要修改代碼,業(yè)務(wù)上會(huì)牽一發(fā)而動(dòng)全身,所以我的解決辦法是盡量不修改代碼的情況下,通過配置超時(shí)時(shí)間來解決這個(gè)問題。

解決方案

從以上問題來看,超時(shí)主要受到兩個(gè)因素的影響:

Nginx 網(wǎng)關(guān)請(qǐng)求超時(shí)設(shè)置

PHP 腳本執(zhí)行時(shí)間上限設(shè)置

我們依次進(jìn)行設(shè)置。

Nginx 網(wǎng)關(guān)請(qǐng)求超時(shí)設(shè)置

Nginx 支持超時(shí)的設(shè)置粒度很細(xì)。主要使用的幾個(gè)如下:

keepalive_timeout

Nginx 使用 keepalive_timeout 來指定 KeepAlive 的超時(shí)時(shí)間。指定每個(gè) TCP 連接最多可以保持多長(zhǎng)時(shí)間。Nginx 的默認(rèn)值是 75 秒,有些瀏覽器最多只保持 60 秒,所以可以設(shè)定為 60 秒。

fastcgi_connect_timeout

與FastCGI服務(wù)器建立連接的超時(shí)。

fastcgi_send_timeout

設(shè)置將請(qǐng)求傳輸?shù)紽astCGI服務(wù)器的超時(shí)。 僅在兩次連續(xù)寫入操作之間設(shè)置超時(shí),而不是為整個(gè)請(qǐng)求的傳輸。 如果FastCGI服務(wù)器在此時(shí)間內(nèi)未收到任何內(nèi)容,則關(guān)閉連接。

fastcgi_read_timeout

從FastCGI服務(wù)器讀取響應(yīng)的超時(shí)。 僅在兩個(gè)連續(xù)的讀操作之間設(shè)置超時(shí),而不是為整個(gè)響應(yīng)的傳輸。 如果FastCGI服務(wù)器在此時(shí)間內(nèi)未傳輸任何內(nèi)容,則關(guān)閉連接。

考慮到一次請(qǐng)求 PHP 腳本的執(zhí)行和后三個(gè)設(shè)置比較相關(guān)。所以在對(duì)應(yīng)網(wǎng)站的 Nginx 配置文件中添加設(shè)置即可。

fastcgi_connect_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;

PHP 腳本執(zhí)行時(shí)間上限設(shè)置

PHP 腳本的執(zhí)行時(shí)間主要是受兩個(gè)配置的影響:

php.ini 中 max_execution_time 和 max_input_time

php.ini 的默認(rèn)位置在 /usr/local/php/etc/

將 php.ini 配置文件中的這兩個(gè)配置項(xiàng)修改為超時(shí)時(shí)間上限。

max_execution_time = 600
max_input_time = 600

php-fpm.conf 中 request_terminate_timeout

php-fpm.conf 的默認(rèn)位置在 /usr/local/php/etc/

request_terminate_timeout 也設(shè)置為超時(shí)時(shí)間的上限。

request_terminate_timeout = 600

修改完成后重啟 Nginx 和 php-fpm 即可。

service nginx reload
/etc/init.d/php-fpm reload

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php方法執(zhí)行時(shí)間過長(zhǎng)怎么辦”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

文章標(biāo)題:php方法執(zhí)行時(shí)間過長(zhǎng)怎么辦
當(dāng)前網(wǎng)址:http://jinyejixie.com/article48/ppspep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)品牌網(wǎng)站建設(shè)、小程序開發(fā)虛擬主機(jī)、品牌網(wǎng)站制作、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
虹口区| 南安市| 轮台县| 宁安市| 延津县| 上蔡县| 渑池县| 天长市| 大关县| 长葛市| 任丘市| 呈贡县| 建德市| 疏勒县| 麻江县| 额济纳旗| 仁布县| 阿城市| 铅山县| 乌苏市| 商都县| 七台河市| 利川市| 内江市| 莎车县| 工布江达县| 溆浦县| 许昌市| 博罗县| 临澧县| 景德镇市| 濮阳市| 诸暨市| 秦皇岛市| 新巴尔虎左旗| 邹城市| 古丈县| 响水县| 城固县| 屏南县| 宣化县|