色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

PHP http請求超時問題解決方案

瀏覽:85日期:2022-09-08 17:06:21

一,http請求超時時間

可能出現(xiàn)的場景:

1,curl進(jìn)程運行了一個世紀(jì)還木結(jié)束,curl的時候設(shè)置了超時時間 --connect-timeout 1000

2,operation timed out after 1000 milliseconds with 0 bytes received

3,connect() timed out!

wget對超時時間, 是有分階段的, 比如說請求的超時, 傳輸?shù)某瑫r,同樣HTTP請求有兩個超時時間:一個是連接超時時間,另一個是數(shù)據(jù)傳輸?shù)淖畲笤试S時間,出現(xiàn)問題就要看是哪個超時時間出問題了。

curl命令行連接超時時間用 --connect-timeout 參數(shù)來指定,數(shù)據(jù)傳輸?shù)淖畲笤试S時間用 -m 參數(shù)來指定,時間是毫秒

例如:

curl --connect-timeout 10 -m 20 'http://***'

連接超時的話,出錯提示形如:

curl: (28) connect() timed out!

數(shù)據(jù)傳輸?shù)淖畲笤试S時間超時的話,出錯提示形如:

curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received

使用PHP的curl_init

<?php // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/'); curl_setopt($ch, CURLOPT_HEADER, 0);

//連接超時時間 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1000);

//數(shù)據(jù)傳輸?shù)淖畲笤试S時間 curl_setopt($ch, CURLOPT_TIMEOUT, 1000); // grab URL and pass it to the browser curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch);

//使用curl_error($ch)查看錯誤的詳情 var_dump(curl_error($ch));

二,頁面執(zhí)行時間

當(dāng)你的頁面有大量數(shù)據(jù)時,建議使用set_time_limit()來控制運行時間,配置該頁最久執(zhí)行時間。

設(shè)定一個程式所允許執(zhí)行的秒數(shù),如果到達(dá)限制的時間,程式將會傳回錯誤,時間是秒單位。

php.ini:它預(yù)設(shè)的限制時間是30秒,max_execution_time的值定義在結(jié)構(gòu)檔案中,如果將秒數(shù)設(shè)為0,表示無時間上的限制,修改后重新啟動apache/nginx服務(wù)器

php代碼:set_time_limit(800);

這個函數(shù)指定了當(dāng)前所在php腳本的最大執(zhí)行時間為800秒,實際上最大執(zhí)行時間=php.ini里的max_execution_time數(shù)值 - 當(dāng)前腳本已經(jīng)執(zhí)行的時間 + 設(shè)定值

假如php.ini里的max_execution_time=30,當(dāng)前腳本已經(jīng)執(zhí)行5秒,則:

最大執(zhí)行時間=30-5+800=825秒。

注意 : 當(dāng)PHP是執(zhí)行在安全模式時,set_time_limit( )將不會有結(jié)果,除非是關(guān)閉安全模式或是修改結(jié)構(gòu)檔案中的時間限制。

三,php長連接

如果我們需要一個腳本持續(xù)的運行,那么我們就要通過php長連接的方式,來達(dá)到運行目的。通過 set_time_limit 來設(shè)置一個腳本的執(zhí)行時間為無限長;然后使用 flush() 和 ob_flush() 來清除服務(wù)器緩沖區(qū),隨時輸出腳本的返回值。

如下面這段腳本:

<?phpheader('Content-Type: text/plain');set_time_limit(0);$infoString = 'Hello World' . 'n';while( isset($infoString) ){ echo $infoString; flush(); ob_flush(); sleep(5);}?>

當(dāng)我們執(zhí)行后,每隔5秒鐘,我們會得到一行 Hello World ,如果不按停止按鈕,瀏覽器會不停的一行一行繼續(xù)加載。

通過這一方法,我們可以完成很多功能,例如機(jī)器人爬蟲、即時留言板等程序。

如果要停止運行只能重啟php-fpm:

查看php-fpm進(jìn)程數(shù):

ps aux | grep -c php-fpm

查看運行內(nèi)存

/usr/bin/php -i|grep mem

重啟php-fpm

/etc/init.d/php-fpm restart

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产不卡精品一区二区三区 | 国内黄色精品 | 午夜在线亚洲男人午在线 | 黄色免费看片网站 | 欧美一级高清免费播放 | 成人影院欧美大片免费看 | 5级做人爱c视版免费视频 | 成人一级视频 | 亚洲精品欧美精品国产精品 | 亚洲欧美卡通成人制服动漫 | 99国产精品视频免费观看 | 国产一级aa大片毛片 | 毛片手机在线视频免费观看 | 亚洲最新 | 久久久国产精品网站 | 男人的天堂免费网站 | 一级片爱爱 | 午夜影院0606 | 亚洲成a人片在线网站 | 久久精品a | 91精品久久国产青草 | 日韩免费高清一级毛片 | 国产偷国产偷亚洲高清午夜 | 毛片a级三毛片免费播放 | 欧美激情国内自拍偷 | 欧美老妇免费做爰视频 | 99黄色网| 日韩一区二区在线免费观看 | 欧美精品a毛片免费观看 | 亚洲欧美日韩国产精品一区 | 一本久道久久综合婷婷 | 免费网站18| 国产高清一区 | 国产黄色美女 | 亚洲三级免费观看 | 欧美怡红院免费的视频 | 网站在线看| 可以看的毛片网站 | 日韩欧美在线视频观看 | 三级国产在线观看 | 国产精品青草久久久久福利99 |